たくさんの html があり、xpath 経由で処理したいと考えています。テキストが発生する可能性のある方法は 2 つあります。
<div>
The Text
</div>
<!-- OR -->
<div>
<span>The Text</span>
</div>
<!-- BUT NOT -->
<div> other text
<span>The Text</span>
</div> other text
単一の xpath 式で「The Text」を取得する方法はありますか?
編集:
具体的な構造:
<div id="content">
<h1>...</h1>
<div>
...
</div>
<div>
<span>The Text</span>
</div>
コンテンツノードを取得して//div[@id='content'][1]
、他の目的に再利用しています。このコンテキスト ノードで、 を実行しようとしまし./div[2]/span/text() | ./div[not(span)][2]/text()
た。スパンがない場合は機能しますが、スポーンがある場合は空白/null を返します。Java xpath 実装を使用しています。div は常に content-node の 2 番目のものです。