这个问题是对已回答问题的跟进: XmlDocument.SelectSingleNode and prefix + xmlNamespace issue
问题在于,将来可能会在没有警告的情况下更改收到的xml的名称空间前缀,因此我们想知道是否有任何方法可以使用SelectSingleNode但省略元素的前缀。
(我们知道我们可以删除传入xml的所有前缀,但它需要更多步骤....虽然如果提供代码我们会认为它是一个有效的答案......)
答案 0 :(得分:6)
只要名称空间URI没有更改,前缀名称是否会更改无关紧要。
您在代码中使用的前缀名称和XML文档中的前缀名称不必匹配,例如。
namespaces.AddNamespace("foo", "http://exception.do29.imq.es/xsd");
XmlNode nodemsg = xmldocu.SelectSingleNode("//foo:message", namespaces);
答案 1 :(得分:1)
可以在xpath中使用*省略它,例如:
//*[local-name()='ElementName']
基于问题XPath select node with namespace
另外,这个工具对于测试不同的xpath非常有用.... http://xpathvisualizer.codeplex.com/