我有一个像这样的XML文件:
<div class="main">
<div aria="location">
...
</div>
<div class="transcript">
...
</div>
</div>
如果有元素,我希望div
获得aria=" location "
,如果没有具有该条件的元素,则div
带class=" transcript "
。
我在chrome检查元素选项卡中检查我的XPath,我想使用它。
答案 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
。