[英]How do I select all of the nodes in an xml file between two tags, depending on attribute name of the tag?
[英]How do I chose a chunk of tags that are in between of two tags?
(包括結束標簽)
例如:
<xml>
<a></a>
<a><b></b></a>
<a></a>
<a></a>
<a><c></c></a>
<a></a>
<a><b></b></a>
<a><b></b></a>
<a></a>
<a></a>
<a><b></b></a>
</xml>
我需要這三個<a>
,它們在包含<b>
的那個之后,以包含<c>
的那個結束。
或者更確切地說,“從一個帶有<c>
和 select 的開始,直到您看到一個帶有<b>
或文檔結尾的”,這會更好,因為可能存在沒有“開始” <b>
標記的情況。
我需要它來為 uBlock Origin Chrome 擴展程序編寫元素阻止規則。
我認為這應該可以解決問題:
//a[c][1] |
//a[c][1]/preceding-sibling::a
[
not(
b or following-sibling::a[b]/following-sibling::a/c
)
]
解釋:
a
包含c
,還有...a
a
元素,只要它們本身也不是:
b
或a
包含一個b
,然后是另一個a
c
的 a我想出了這個:
//a[not(b)][c | following-sibling::*[./*][1][./c]]
它采用所有 not(b),它們要么是 c(結尾),要么是“下一個包含任何內容的標簽都包含 c”。
或者:
//a[c or not(*) and following-sibling::*[*][1][./c]]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.