我有以下HTML树(请注意,ID为" msg - uniqueRandomNumber
"):
<div class="elements">
<div class="grp" id="msg-128736"> </div>
<div class="grp" id="msg-312422"> </div>
<div class="grp" id="msg-012312"> </div>
<div class="grp" id="msg-567243"> </div>
</div>
我想匹配一组元素,其中第一个元素是特定的id。
示例:从grp
开始匹配每个班级msg-012312
。
结果应该是:
<div class="grp" id="msg-012312"> </div>
<div class="grp" id="msg-567243"> </div>
答案 0 :(得分:2)
Choroba很好的解释和正确答案都是正确的(+1),但这里有一个更简单的XPath:
//div[@class="grp" and not(./following-sibling::div[@id="msg-012312"])]
读为
选择所有未显示的
grp
div
个元素 在div
之前,ID为msg-012312
。
答案 1 :(得分:1)
要选择给定类和id的div,请使用
//div[@class="grp" and @id="msg-012312"]
要选择以下兄弟姐妹,您可以使用
following-sibling::div[@class="grp"]
将两个节点集与union运算符|
放在一起:
( //div[@class="grp" and @id="msg-012312"]
| //div[@class="grp" and @id="msg-012312"]/following-sibling::div[@class="grp"] )