我需要从HTML页面获取一些文本。我试图避免依赖标记名或类,因为它们会发生变化。
从包含文本“ Hello”的元素开始,我正在寻找存储在祖父母的第二个元素中的文本。
<...>
<...>
<...>
Hello
</...>
</..>
<...> <!-- UNCLE -->
<...>
World <!-- I need this! -->
</...>
<...>
</...>
我尝试使用带有//*[text()=="Hello")]/../..[2]
的XPath来获取元素UNCLE,但是它不起作用。似乎[]无法应用于..
?
如何获取节点的祖父母的第二个孩子?
是否有更好的方法来检索我要查找的文本,而不是类似的XPath查询和document.evaluate?
答案 0 :(得分:0)
尝试一下:
//*[*[1][*[normalize-space()='Hello']]]/*[2]/*
它将选择包含“世界”的元素。
它正在测试第一个孩子的后代的值,然后选择第二个孩子的后代。