我想选择一个元素,如果存在2个中的一个,则将其用于2个页面
第1页(折扣价)
<div class="price">
<span class="originalRetailPrice">$2,990.00</span>
</div>
</div>
<div class="price">
<span class="salePrice">$1,794.00</span>
</div>
或第二页(只有一个价格)
<div class="price">
$298.00
</div>
我用过
//span[@class="originalRetailPrice"] | (//div[@class="priceBlock"])[1]
但我得到两次价格
我想要的是在class="originalRetailPrice"
或//div[@class="price"]/text()[1]
所以最后我想让选择适用于两个页面
答案 0 :(得分:8)
使用//
获取<div class="price">
内的任何级别的文字:
//div[@class="price"][1]//text()
结果:
Text=''
Text='$2,990.00'
Text=''
使用以下内容过滤空文本:text()[normalize-space() and not(ancestor::a | ancestor::script | ancestor::style)]
//div[@class="price"][1]//text()[normalize-space() and not(ancestor::a | ancestor::script | ancestor::style)]
结果第1页:
Text='$2,990.00'
结果第二页:
Text='$298.00'
答案 1 :(得分:4)
您可以尝试这种方式:
struct One;
impl One { fn is_empty(self: &Self) -> bool { false } }
第二部分(TraitOrItemId
的右侧)仅在没有子//span[@class="originalRetailPrice"] | //div[@class="price" and not(span[@class="originalRetailPrice"])]/text()[1]
的情况下选择|
元素。