当表单部署到服务器时,SelectSingleNode总是返回null

本文关键字:SelectSingleNode 返回 null 表单 部署 服务器 | 更新日期: 2023-09-27 18:23:44

当我将Infopath 2007表单部署到SharePoint服务器时,SelectSingleNode始终返回null,但始终在本地工作。以下是一个失败的代码示例:

XPathNavigator vendor=payeeDS-SelectSingleNode(
"/dfs:myFields/dfs:dataFields/tns:GetVendorsResponse/tns:GetVendorsResult/NewDataSet/Vvendor s[Name='"+payeeTypedName+"']",NamespaceManager);

我正在给事件查看器写信,以便确认代码确实命中了。该表单由管理员批准,并具有完全信任。

有什么想法可以引起这个问题吗?

感谢

当表单部署到服务器时,SelectSingleNode总是返回null

XPathNavigator的行为不会根据环境而改变。我不确定,但你可能有两个问题中的一个。

payeeDS没有作为有效的XML文件加载,无法读取,或者更有可能是

Sharepoint在XML文件中添加了一些NameSpacing,您需要更改导航。

验证节点路径。("/dfs:myFields/dfs:dataFields/tns:GetVendorsResponse/tns:GetVendorsResult/)路径的第一部分在一个名称空间(dfs:)中,另一部分在其他名称空间(tns:)中。你可以做两件事

1.设置tns的名称空间:使用您的网络服务

 IXMLDOMDocument2 domXml = (IXMLDOMDocument2)xDocument.DataObjects[dataSource].DOM;
            string selectionNamespaceValue = string.Empty;
   public const string SELECTION_NAMESPACE_VALUE =
        "xmlns:dfs='http://schemas.microsoft.com/office/infopath/2003/dataFormSolution' xmlns:ns1='{0}'";
                selectionNamespaceValue = string.Format(CultureInfo.CurrentCulture, Constants.SELECTION_NAMESPACE_VALUE,Constants.DEFAULT_WEB_SERVICE);
 domXml.setProperty("SelectionNamespaces", selectionNamespaceValue);
  1. 您可以通过以下方式访问节点。

    payeeDS-SelectSingleNode("/dfs:myFields/dfs:dataFields)..firstChild.firstChild;

相关文章:
  • 没有找到相关文章