Xml 如果xpath中的条件为true,如何获取元素
我有这样一个XML文件: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”获
<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