如果存在两个元素中的一个,则使用XPath选择1个元素
我想选择一个元素,如果2个元素中有一个存在的话,同时在2个页面中使用它 第1页(带折扣的价格)如果存在两个元素中的一个,则使用XPath选择1个元素,xpath,import.io,Xpath,Import.io,我想选择一个元素,如果2个元素中有一个存在的话,同时在2个页面中使用它 第1页(带折扣的价格) $2,990.00 $1,794.00 或第二页(仅一个价格) $298.00 我用过 //span[@class=“originalRetailPrice”]|(//div[@class=“priceBlock”])[1] 但是我得到了两倍的价格 我想要的是选择第一个价格,当它是class=“originalRetailPrice”或//div[@class=“price”]/text()[
$2,990.00
$1,794.00
或第二页(仅一个价格)
$298.00
我用过
//span[@class=“originalRetailPrice”]|(//div[@class=“priceBlock”])[1]
但是我得到了两倍的价格
我想要的是选择第一个价格,当它是class=“originalRetailPrice”
或//div[@class=“price”]/text()[1]
因此,最后我想在这两个页面上进行选择使用
/
获取
中任何级别的文本:
//div[@class="price"][1]//text()
结果:
Text=''
Text='$2,990.00'
Text=''
并使用以下内容过滤空文本: 结果第1页:
Text='$2,990.00'
结果第2页:
Text='$298.00'
您可以这样尝试:
//span[@class="originalRetailPrice"] | //div[@class="price" and not(span[@class="originalRetailPrice"])]/text()[1]
第二部分(
|
的右侧)选择div[@class=“price”]
元素,前提是它没有子元素span[@class=“originalRetailPrice”]
完美,非常感谢快速回答。如果在第一个xml中交换div块,结果将是错误的。这不是问题answer@splash58这个//div[@class=“price”][1]//text()
对我有用,所以这是一个答案。这是你的问题,你可以自己决定,但是当它的class=“originalRetailPrice”在answer@OP:它可能在特定情况下有效,但不符合问题中描述的标准,因此,在某些情况下,它会给出错误的答案。
Text='$2,990.00'
Text='$298.00'
//span[@class="originalRetailPrice"] | //div[@class="price" and not(span[@class="originalRetailPrice"])]/text()[1]