.net XPath从正确级别选择节点
我得到了以下(简化的)XML 在本例中,Element.Value包含用户Id.net XPath从正确级别选择节点,.net,xml,xpath,.net,Xml,Xpath,我得到了以下(简化的)XML 在本例中,Element.Value包含用户Id 根Id的正确选择器是什么?为什么不直接选择根Id节点 Navigator.Select("/root/id", ns) 你的问题就在这里: Element = Node.SelectSingleNode("/id") 您已指定应计算绝对表达式/id 这是一个绝对的XPath表达式(以/开头),如果XML文档的名称是“id”,它将选择XML文档的顶部元素。在这种特定情况下,顶部元素的名称是“root”(而不是“i
根Id的正确选择器是什么?为什么不直接选择根Id节点
Navigator.Select("/root/id", ns)
你的问题就在这里:
Element = Node.SelectSingleNode("/id")
您已指定应计算绝对表达式/id
这是一个绝对的XPath表达式(以/
开头),如果XML文档的名称是“id”
,它将选择XML文档的顶部元素。在这种特定情况下,顶部元素的名称是“root”
(而不是“id”
),因此XPath表达式不选择任何内容
解决方案:或者:
Element=Node。选择singlenode(“id”)
Element = Node.SelectSingleNode("/id")
谢谢你更详细的解释。我尝试了
/id
和id
,但都没有返回任何结果。也许我是从错误的节点开始的,或者是从其他同样愚蠢的节点开始的-我看不出它失败的另一个原因。@Basiclife:也许node
的定义不正确。可能是这样的:Dim Node=Navigator.SelectSingleNode(/*)
?
Element = Node.SelectSingleNode("/id")
Element = Navigator.SelectSingleNode("/root", ns)