-3
4

1 に答える 1

0

XPath を使用すると、完全に防弾の方法でこれを行うことができます。

//*[local-name()='a' and count(@*)>0 and *[local-name()='img' and count(@*)>0] and count(.//*)=1 and normalize-space(.)='']

これにより、重要でないテキスト コンテンツ、属性、および属性を持つ単一の 'img' 要素を持たないローカル名 'a' を持つすべての要素が選択されます。

ただし、コード例は明らかに名前空間とすべてを含む XML であるため、「どの正規表現を使用すればよいか」ではなく、全体的なタスクが何であるかを示すように質問を再定式化できます。少なくとも、名前空間の宣言を属性として扱うのではなく、これらの名前空間に注意を払う必要があるようです。

たとえば、あなたが本当に言いたいのはこれですか?

//xhtml:a[@xlink:href and xhtml:img[@xlink:href] and count(.//*)=1 and normalize-space(.)='']
于 2012-06-29T05:35:57.243 に答える