gpt4 book ai didi

java - xPath 表达式 : Getting elements even if they don't exist

转载 作者:数据小太阳 更新时间:2023-10-29 02:22:36 24 4
gpt4 key购买 nike

我将这个 xPath 表达式放入 htmlCleaner 中:

 //table[@class='StandardTable']/tbody/tr[position()>1]/td[2]/a/img

现在,我的问题是它发生了变化,有时/a/img 元素不存在。所以我想要一个获取所有元素的表达式

//table[@class='StandardTable']/tbody/tr[position()>1]/td[2]/a/img

当/a/img 存在时,并且

//table[@class='StandardTable']/tbody/tr[position()>1]/td[2]

当/a/img 不存在时。

有没有人知道如何做到这一点?我在另一个问题中发现了一些看起来可能对我有帮助的东西

descendant-or-self::*[self::body or self::span/parent::body]

但是我不明白。

最佳答案

使用:

 (//table[@class='StandardTable']
/tbody/tr)
[position()>1]
/td[2]
[not(a/img)]

|

(//table[@class='StandardTable']
/tbody/tr)
[position()>1]
/td[2]
/a/img

一般来说,如果我们想在某些条件 $cond 为真时选择一个节点集 ($ns1) 并选择另一个节点集($ns2) 否则,可以使用以下单个 XPath 表达式指定:

$ns1[$cond] | $ns2[not($cond)]

在这种特殊情况下,ns1:

 (//table[@class='StandardTable']
/tbody/tr)
[position()>1]
/td[2]
/a/img

ns2:

 (//table[@class='StandardTable']
/tbody/tr)
[position()>1]
/td[2]

$cond:

boolean( (//table[@class='StandardTable']
/tbody/tr)
[position()>1]
/td[2]
/a/img
)

关于java - xPath 表达式 : Getting elements even if they don't exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8567516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com