如果xpath中的条件为真,如何获取元素

时间:2017-01-17 07:09:35

标签: xml google-chrome xpath inspect

我有一个像这样的XML文件:

<div class="main">
    <div aria="location">
        ...
    </div>
    <div class="transcript">
        ...
    </div>
</div>

如果有元素,我希望div获得aria=" location ",如果没有具有该条件的元素,则divclass=" transcript "。 我在chrome检查元素选项卡中检查我的XPath,我想使用它。

1 个答案:

答案 0 :(得分:0)

您可以使用XPath:

(//div[@aria='location']|//div[@class='transcript' and not(following::div[@aria='location'])])[1]

说明:

  • (分组
    • //div[@aria='location']找到div属性值为aria的{​​{1}}元素
    • location
    • |找到//div[@class='transcript' and not(following::div[@aria='location'])]属性值div的{​​{1}}元素,且class元素没有transcript属性值{ {1}}之后,按文档顺序
  • div结束分组
  • aria获取第一个结果

location检查是必要的,因为如果我们刚刚使用:

)

然后,如果带有[1]类的following元素位于(//div[@aria='location']|//div[@class='transcript])[1] 之前,且文档顺序为div transcript,那么div由于XPath遍历的工作方式,将返回类aria