这是为了学校,如果你知道你的XPath并且不介意告诉我我是否正确:
1.
//a[/b]/a
每个'a'在树中有一个父'a',其中根是'b'.(该位置[/b]无关紧要?即上述等价于//a/a[/b]?
2.
//*[//a]//a[/a][a]
从左到右分解:
//*[//a]意味着所有元素都有一个后代'a',因此//*[//a]//a(相当学校)是指所有'a'元素.并且//*[//a]//a[/a]表示树中所有'a'元素,其中根是'a',最后 - //*[//a]//a[/a][a]表示树中所有'a'元素,其中根是'a',其中有一个子'a'.
感谢您的帮助,似乎无法在任何地方获得直接答案.
哪一门课正在向您询问晦涩难懂的 XPath 查询?哇。
//a[/b]/a
是的,你有这个权利。的位置[/b]无关紧要。
//*[//a]//a[/a][a]
从技术上讲,这//*[//a]//a相当于//*//a所有具有祖先元素的“a”元素。因此,如果根元素是“a”,则不会匹配。除此之外,是的,你的分析是正确的。
无论如何,几年前,我在 JavaScript 中为我从事的一个项目从头开始实现了一个完整的 XPath 解析器。所以我真的希望我的答案是正确的!