鉴于以下html片段,我怎样才能选择所有包含a
或c
的div,只要他们有一个带有a1
的子div
现在我有了以下xpath查询:
//div[@id='z']/div[@class='a' or @class='c']
<div id="z">
<div class="a"><!-- Should be selected -->
<div class="a1"></div>
</div>
<div class="a">
<div></div>
</div>
<div class="b">
<div></div>
</div>
<div class="a"><!-- Should be selected -->
<div class="a1"></div>
</div>
<div class="c"><!-- Should be selected -->
<div class="a1"></div>
</div>
</div>
答案 0 :(得分:4)
使用强>:
//div[(@class='a' or @class='c') and div[@class='a1']]
在知道XML结构时,始终避免使用//
。 //
通常非常低效,因为它会导致遍历完整子树,其顶层元素是上下文节点。
答案 1 :(得分:3)
/div[@id='z']/div[@class='a' or @class='c'][div[@class='a1']]