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)

今、これらのimgタグを削除するためにXPathを使いたいと思います。

これまで私がこれまで持っていたことは次のとおりです。

//img[@alt='^('  ???/sup]

直接の兄弟の存在に基づいて要素を選択するにはどうすればよいですか?

受け入れられた回答

明らかにこれは次のようなものです:

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

それは(そして、私はここで推測している):

//img

img (どこでも)...

[@alt='^(' and  ...  ]

...その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は合法ですか? はい、理由を学ぶ