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

Xml 如果xpath中的条件为true,如何获取元素,xml,google-chrome,xpath,inspect,Xml,Google Chrome,Xpath,Inspect,我有这样一个XML文件: <div class="main"> <div aria="location"> ... </div> <div class="transcript"> ... </div> </div> ... ... 我想用aria=“location”获取div如果有元素,如果没有具有该条件的元素,则用class=“transcript”获

我有这样一个XML文件:

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

...
...
我想用
aria=“location”
获取
div
如果有元素,如果没有具有该条件的元素,则用
class=“transcript”
获取
div
。 我在chrome inspect element选项卡中检查我的XPath,我想使用它。

您可以使用XPath:

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

  • 分组
    • //div[@aria='location']
      查找具有
      aria
      属性值的
      div
      元素
      location
    • |
    • //div[@class='transcript'和not(following::div[@aria='location'])
      找到一个
      div
      元素,该元素后面有一个
      class
      属性值
      transcript
      ,并且按照文档顺序没有
      div
      元素后面有
      aria
      属性值
      location
  • 结束分组
  • [1]
    获取第一个结果
下面的
检查是必要的,因为如果我们只是使用:

(//div[@aria='location']|//div[@class='transcript])[1]
然后,如果类为
transcript
div
元素在类为
aria
位置为
div
transcript
元素之前按文档顺序出现,那么将根据XPath遍历的工作方式返回类为
transcript的
div