3

次の XPath を使用して、id 'mpp_controls' を持つ div 内のものを除いて、ドキュメントからすべての空でないテキスト ノードとイメージ ノードを取得します。

//img[not(ancestor::*[@id='mpp_controls'][normalize-space()])] | //text()[not(ancestor::*[@id='mpp_controls'])][normalize-space()]

述語は両方の要素で同じであり、将来同様のクエリにさらにタグを追加する可能性があるため、短くしてみました。この答えを見て、私は思いつきました:

//*[self::img or self::text()][not(ancestor::*[@id='mpp_controls'])][normalize-space()]

そして私も試しました:

//*[img or text()][not(ancestor::*[@id='mpp_controls'])][normalize-space()]

残念ながら、どちらも構文エラーになります。このクエリを短縮することはまったく可能ですか?

4

1 に答える 1