我正在使用 XPath 从 HTML 文档中获取一个元素。元素必须有特定的id,或者如果id不存在,则获取一个保证存在的元素(比如body元素)。
要通过其 id 获取元素,我使用:
css=#may-not-exist
并获得我使用的后备元素(比如身体):
css=body
如何将上面的这两个表达式组合成一个表达式(get #may-not-exist
else get body
)?
我正在使用 XPath 从 HTML 文档中获取一个元素。元素必须有特定的id,或者如果id不存在,则获取一个保证存在的元素(比如body元素)。
要通过其 id 获取元素,我使用:
css=#may-not-exist
并获得我使用的后备元素(比如身体):
css=body
如何将上面的这两个表达式组合成一个表达式(get #may-not-exist
else get body
)?
可以使用body
默认值。它将首先来自表达式,因为它先于其他任何内容开始(除非您在head
.
(//*[@id="xxx"] | //body)[last()]
该( ... | ... )
部分返回其子部分的并集。它们是*[@id="xxx"]
-- 任何其属性 id 的值为 xxx 的元素 -- 和 //body,即 body。从这个联合中,[last()]
选择最后一个。返回的节点的排序方式与原始文档中的相同,因此 body 排在第一位(至少在 body 内部的任何内容之前)。如果存在具有 id 的元素,它将在 body 之后并被返回。如果不是,则 body 将作为从联合返回的唯一(第一个和最后一个)节点返回。