我正在使用.Net 2.0,无论命名空间如何,都需要SelectSingleNode
XmlDocument
,因为这听起来不对。
具体
XmlElement slipType = (XmlElement)document.SelectSingleNode("//Provenance1");
会将slipType
设置为null,因为在查询时我不知道命名空间Provenance1。
答案 0 :(得分:23)
您可以检查元素的 local-name ,并使用以下XPath表达式忽略命名空间:
//*[local-name()='Provenance1']
答案 1 :(得分:0)
尝试:
XmlElement slipType = (XmlElement)document.SelectSingleNode("//*:Provenance1");
或者:
XmlElement slipType = (XmlElement)document.SelectSingleNode("//@*:Provenance1");
表示属性......
不幸的是,这种结构只适用于XPath 2.0,而.NET只使用XPath 1.0。我意外地用2.0解析器测试了上面的代码,所以它不起作用。)