[英]Exclude elements from Xpath groups
我有一個非常復雜的 HTML 的一個網站。 我想通過相對Xpath select多組元素。例如:
//div[@class="something] | //span/div | //div/span/div[@class="otherthing"]
一旦我選擇了所有元素,我想排除同一個 xpath 中的一些特定元素。
假設上面的 xpath 結果返回了 150 個元素。 我想排除以下 3 個 xpath,每個 xpath 都指向 1 個元素。 所以最終結果應該是找到了147個元素:
//div[@id="menu"]
//div/span/div[@class="something3"]
//body/span/div/span/div[1]
我怎樣才能在 1 xpath 和 Xpath 1 內做到這一點?
我已經嘗試過這里的解決方案,但是這僅在您選擇要排除的組時有效: https://stackoverflow.com/a/74615054/12366148
我還嘗試了多種方法來組合“not”和“self”命令,但似乎沒有任何效果。 不幸的是,我不能使用 except 運算符,因為它只適用於 Xpath 2.0。
給定<xsl:variable name="ns1" select='//div[@class="something] | //span/div | //div/span/div[@class="otherthing"]'/>
和<xsl:variable name="ns2" select='//div[@id="menu"] | //div/span/div[@class="something3"] | //body/span/div/span/div[1]'/>
,你可以使用例如
<xsl:variable name="ns1-except-ns2" select="$ns1[count(. | $ns2) != count($ns2)]"/>
如果我的 XPath 1 回憶仍然有效。
您還沒有使用 XSLT 標簽,所以我猜您想要
(//div[@class="something] | //span/div | //div/span/div[@class="otherthing"])[count(. | //div[@id="menu"] | //div/span/div[@class="something3"] | //body/span/div/span/div[1]) != count(//div[@id="menu"] | //div/span/div[@class="something3"] | //body/span/div/span/div[1])]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.