1

私は、ページからテキストを取得してさまざまな操作を行う社内リーダー スタイルの PHP アプリを構築しています。ほとんどの HTML ページのテキストは順序付けされていないため、アプリはクラス名やその他のナビゲーション アンカーを使用せずにテキストを取得できる必要があります。アンカーとして関連するのはテキスト タイトルのみです。

特定の開始ノード (タイトル) からテキストをフェッチし、img タグに到達したときに停止したいと考えています (存在しない場合は、すべてのテキストをフェッチする必要があることを意味します)。私は現在、XPathを使用して画像なしでテキストを取得することにのみ成功しています。

サンプルの HTML は次のとおりです。

<b>Some title</b>
<br/> Important text
<br/> More important text
<p> More text I which should be fetched</p>
<p><img src="foo.jpg"/></p>
<p> Unimportant text, don't want it!</p>

これは、私が現在使用している XPath クエリです//*[text()="Some title"]/following::text()

上記は実際に関連するテキストを取得しますが、存在する場合は img タグで停止したいと思います。これを行う方法はありますか?

4

1 に答える 1

0

画像が前にないすべてのテキスト ノードを取得します。

//*[text()="Some title"]/following::text()[not(preceding::img)]

必要に応じて、停止する画像をさらに簡単に制限できます。

于 2013-06-16T11:36:53.307 に答える