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