XPath:我可以選擇下一個(或上一個)兄弟節符合某些條件的節點嗎?

html html-agility-pack xpath

我正在使用Agility Pack重新格式化HTML文檔,並且我遇到了對XPath理解的限制。

在我正在使用的文檔中,以下是一個常見的構造:

128 2

這是這樣構建的:

128<img src="" style="display: none;" alt="^(" /><sup>2</sup><img src="" style="display: none;" alt=")" />

因此,當您選擇並將其複製到剪貼板時,它將變為:

128 ^(2)

現在,我想使用XPath刪除這些img標籤。

這是我到目前為止:

128<img src="" style="display: none;" alt="^(" /><sup>2</sup><img src="" style="display: none;" alt=")" />

如何根據直接兄弟的存在選擇元素?

一般承認的答案

顯然它是這樣的:

//img[@alt='^(' and following-sibling::*[1][self::sup]]

那是(而且,我猜,在這裡):

//img[@alt='^(' and following-sibling::*[1][self::sup]]

一個img (任何地方)......

//img[@alt='^(' and following-sibling::*[1][self::sup]]

...其alt屬性為'^('和...

//img[@alt='^(' and following-sibling::*[1][self::sup]]

......他的第一個兄弟姐妹......

//img[@alt='^(' and following-sibling::*[1][self::sup]]

...可以稱自己為sup


熱門答案

在我的頭頂,使它成為一個複合條件。就像是:

//img[@alt='^('  ???/sup AND preceding-sibling::*[1] AND following-sibling::*[1]]



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因