簡體   English   中英

如果xpath中的條件為真,如何獲取元素

[英]How to get an element if a condition is true in xpath

我有一個像這樣的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屬性值locationdiv元素
    • | 要么
    • //div[@class='transcript' and not(following::div[@aria='location'])]找到一個div與元素class屬性值transcript ,並且沒有div與元素aria屬性值location后它,按文檔順序
  • )結束分組
  • [1]取得第一個結果

following檢查是必要的,因為如果我們剛使用過:

(//div[@aria='location']|//div[@class='transcript])[1]

然后,如果按文檔順序將具有類transcriptdiv元素排在具有aria locationdiv之前,則由於XPath遍歷的工作原理,將返回具有類transcriptdiv

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM