xpath是全新的,所以也许只是不知道要正确搜索的术语。
我想从具有特定ID的div的开头抓到具有特定id的段落的末尾。请注意,我只想选择div的一部分。
<body>
<div id="meaninglessPreamble">Do not get this data.</div>
<div id="wrapper">
<div id="grabThis">good stuff</div>
<p id="grabThisToo">more good stuff</p>
<p id="endHere"/>
<p id="leaveMeOutOfThis">Unwanted Junk</p>
</div>
</body>
答案 0 :(得分:2)
更一般的方法,你可以尝试使用follow-sibling和previous-sibling来按id属性选择一系列元素。
/body/div[@id='wrapper']/*
[
(preceding-sibling::*[@id='grabThis'] or @id='grabThis')
and
(following-sibling::*[@id='endHere'] or @id='endHere')
]
上面的示例演示了选择<div id="wrapper">
的所有子元素,从包含id="grabThis"
的元素到包含id="endHere"
的元素。如果您希望它专门选择(排除限制元素),只需删除or @id='...'
部分。
答案 1 :(得分:0)
选择这两个元素的一种方法是,选择div的子节点@id等于&#34;包装器&#34;和他们的跟随兄弟是一个p元素,其@id等于&#34; endHere&#34;:
/body/div[@id='wrapper']/*[following-sibling::p[@id='endHere']]