C# 将表单部署到服务器时,SelectSingleNode始终返回null

C# 将表单部署到服务器时,SelectSingleNode始终返回null,c#,sharepoint,infopath,selectsinglenode,C#,Sharepoint,Infopath,Selectsinglenode,将Infopath 2007表单部署到SharePoint服务器时,SelectSingleNode始终返回null,但始终在本地工作。下面是以下失败代码的示例: XPathNavigator供应商=Payeds.SelectSingleNode /dfs:myFields/dfs:dataFields/tns:GetVendorResponse/tns:GetVendorResult/NewDataSet/Vendor s[Name='10] +PayeTypedName+'],名称空间管理器

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

XPathNavigator供应商=Payeds.SelectSingleNode /dfs:myFields/dfs:dataFields/tns:GetVendorResponse/tns:GetVendorResult/NewDataSet/Vendor s[Name='10] +PayeTypedName+'],名称空间管理器

我正在给事件查看器写信,以便确认代码是否被命中。该表单已获得管理员批准,并具有完全信任

你知道是什么导致了这个问题吗


谢谢

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

要么付款人未作为有效的XML文件加载且无法读取,要么更有可能


Sharepoint已向XML文件添加了一些名称空间,您需要更改导航。

验证节点路径。/dfs:myFields/dfs:dataFields/tns:GetVendorsResponse/tns:GetVendorsResult/ 路径的第一部分位于一个名称spacedfs:中,另一部分位于另一个名称spacetns:。 你可以做两件事

1.使用web服务设置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);
您可以通过以下任一方式访问节点

Payeds.选择SingleNode/dfs:myFields/dfs:dataFields..firstChild.firstChild


谢谢你的回复。如何验证这些XML文件?