.net 选择不带命名空间的SingleNode
我正在使用.Net 2.0,需要从.net 选择不带命名空间的SingleNode,.net,xml,.net,Xml,我正在使用.Net 2.0,需要从XmlDocument中选择SingleNode,而不管名称空间如何,这听起来可能是错误的 具体地说 XmlElement slipType = (XmlElement)document.SelectSingleNode("//Provenance1"); 将slipType设置为null,因为我不知道在查询时名称空间Provenance1是否存在。请尝试: XmlElement slipType = (XmlElement)document.SelectSi
XmlDocument
中选择SingleNode
,而不管名称空间如何,这听起来可能是错误的
具体地说
XmlElement slipType = (XmlElement)document.SelectSingleNode("//Provenance1");
将slipType
设置为null,因为我不知道在查询时名称空间Provenance1是否存在。请尝试:
XmlElement slipType = (XmlElement)document.SelectSingleNode("//*:Provenance1");
或:
对于属性
不幸的是,这种构造只适用于XPath2.0,而.NET只使用XPath1.0。我意外地用2.0解析器测试了上述代码,因此它不起作用。)您可以检查元素的,并使用以下XPath表达式忽略名称空间:
//*[local-name()='Provenance1']
这抛出了一个XPathException/*:provence1有一个无效的令牌。我已经用.NET 3.5对它进行了测试,在那里它也崩溃了。但是,它是一个有效的XPath构造。不幸的是,我已经测试过XPath2.0。但是.NET只使用XPath1.0,而且.NET不太可能支持2.0。。。
//*[local-name()='Provenance1']