1

私の文書の一部が

<div>
  <b>Hello,</b> world!
</div>
<div>
  <span>
    <b>This</b> is a <b>wonderful</b> day!
  </span>
</div>

最初の div、つまり子が と等しい div を選択したいのですが<b>Hello,</b> world!、どのように式を記述すればよいですか。また、2つ目はどうですか?

もちろん、 のような複雑な式を持つこともできますが、//div[text()[1] = ' world' and child::b[position()=1 and text='Hello,']]サブツリーがもう少し複雑になると、複雑さが急速に増大します。

理想的には、サブツリーを返し、2 つのツリーをそれぞれ比較する関数subtreeandがあればよいので、単純に と書くことができます。equalsequals(subtree(), '<span><b>This</b> is a <b>wonderful</b> day!</span>')

何かご意見は?私のニーズに合った機能はありますか?ありがとう。

4

1 に答える 1

0

ドキュメント内の最初の div を見つけたい場合は、/descendant::div[1]-- または -- (//div)[1]-- を使用してください。括弧は、ここで正しい動作を得るために必要です。

2 つの要素を比較することは、より複雑な問題です。そのための XPath 1 には何も組み込まれていません。一部の環境では、定義されているXPath 2 がサポートされdeep-equal()ます

于 2013-06-07T03:16:30.867 に答える