节点不运行时的xpath表达式';不存在?
我正在处理文档中的一些异常情况,主要是某些节点存在,而其他一些时候,它不存在。我想要一个能够考虑这两种情况的xpath 例如,在我的文档中,有span存在和不存在的情况节点不运行时的xpath表达式';不存在?,xpath,Xpath,我正在处理文档中的一些异常情况,主要是某些节点存在,而其他一些时候,它不存在。我想要一个能够考虑这两种情况的xpath 例如,在我的文档中,有span存在和不存在的情况 /html/body/span/div/table/tr/td/a /html/body/div/table/tr/td/a 如何表达匹配上述两种情况的xpath?选择器将搜索任意深度。这将在有span或没有span的情况下工作(除了body和span之外,它还会在其他标记的内部找到div): 可以使用union|运算符将两个
/html/body/span/div/table/tr/td/a
/html/body/div/table/tr/td/a
如何表达匹配上述两种情况的xpath?选择器将搜索任意深度。这将在有span或没有span的情况下工作(除了body和span之外,它还会在其他标记的内部找到div): 可以使用union
|
运算符将两个结果集连接在一起:
/html/body/span/div/table/tr/td/a |
/html/body/div/table/tr/td/a
您可以使用一些疯狂的过滤来尝试在一条路径中完成这一切。未经测试:
/html/body/descendant-or-self::*[self::body or self::span/parent::body]/div/table/tr/td/a
我不明白为什么这样的问题。。。你注意到
/html//a
在这两种情况下都会选择a
元素吗?是的,但是/
会简单地返回页面上的所有链接,我希望链接“大致”遵循上面的某种结构……通过疯狂的过滤,它似乎同时选择了body和span(当它存在时)。是否可以使其仅选择范围?当“跨度”不存在时,它会选择它应该选择的实体。
/html/body/descendant-or-self::*[self::body or self::span/parent::body]/div/table/tr/td/a