我不想对URI进行硬编码,然后必须先分配一个前缀,然后才能使用XPath表达式从XML文档中选择节点。是否可以以程序方式检索此信息?
这是唯一的方法吗?
string uri = xml.SelectSingleNode("*").Attributes["xmlns"].Value?
答案 0 :(得分:3)
我可以建议的唯一好的替代方案(假设你想特别按名称选择节点)是使用local-name()
:
XmlNode foundNode = xml.SelectSingleNode("/*[local-name() = 'a']/*[local-name() = 'b']/*[local-name() = 'c']");
答案 1 :(得分:0)
您可以查询文档以找出它使用的命名空间。例如,XPath表达式namespace-uri(/ *)将找到用于最外层元素名称的命名空间。