C# 将表单部署到服务器时,SelectSingleNode始终返回null
将Infopath 2007表单部署到SharePoint服务器时,SelectSingleNode始终返回null,但始终在本地工作。下面是以下失败代码的示例: XPathNavigator供应商=Payeds.SelectSingleNode /dfs:myFields/dfs:dataFields/tns:GetVendorResponse/tns:GetVendorResult/NewDataSet/Vendor s[Name='10] +PayeTypedName+'],名称空间管理器 我正在给事件查看器写信,以便确认代码是否被命中。该表单已获得管理员批准,并具有完全信任 你知道是什么导致了这个问题吗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+'],名称空间管理器
谢谢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文件?