这是我的HTML:
<html>
<body>
<div id="articleBody">
<p>text</p>
<p>text2</p>
<div>
<p>text3</p>
<p>text4</p>
</div>
</div>
</body>
</html>
这是我的xpathL
//div[@id="articleBody"]//p
这样可以正常工作,但我不想要第二个div中的任何p tags
。
我如何做到这一点?另外,我不希望它仅限于要排除的div
元素。
我真正想要的是查询并仅返回第一级p标记
答案 0 :(得分:1)
这实际上取决于你想要抓住的东西。如果仅使用给定p
下的div
标记,则可以使用:
//div[@id="articleBody"]/p
鉴于您使用的是@id
属性,实际上应该只有一个div
具有该ID,这意味着这只会抓取{{1}的任何子p
元素}}
在两个节点之间使用div
表示法时,它会从给定节点x//y
中获取所有后代y
节点。您只需要直接子项,因此使用x
。