答案 0 :(得分:2)
是的,谢谢,但只是删除斜线,以及我的第二个例子。
删除斜杠只能起作用,因为number
是line
的直接子元素。如果它在层次结构中更进一步:
<root>
<lines>
<line>
<other>
<number>1</number>
</other>
</line>
</lines>
</root>
您仍然需要使用.//number
。
我认为如果你在一个节点内搜索//将返回整个文档的节点,我感到很困惑。
这就是XPath语法的设计方式。 XPath表达式开头的//
表示评估上下文是文档节点 - XML文档的最外层节点。 .//
表示路径表达式的上下文是当前上下文节点。
如果您仔细想想,在任何情境中都可以选择整个文档。
这是微软打算如何工作的方式,还是这个错误。
Microsoft正在实施XPath标准,是的,这就是W3C希望XPath库工作的方式,它不是一个bug。