2011-08-02 15 views
3

基本的に、2つのspanタグの間にテキストを入れる必要があります。 私はSimple HTML DOM Parser(http://simplehtmldom.sourceforge.net/)も使用していますので、できることは少し制限されています。 基本設定は次のとおりです。"Simple HTML DOM"を使用して2つのスパン間のテキストを取得する

<span class=1>text here</span> TEXT I NEED TO GET <span class=2>more text</span> 

ヘルプがありますか?

答えて

5

スパン要素間のテキストは、スパン要素にDOMTextNodeと兄弟である必要があります。 SimpleHTMLDomは、あなたがそれを得ることができるはずDOM specs次の場合:そのdoesntの仕事ならば

$text = $html->find('span[class=1]', 0)->next_sibling(); 

、のlibxmlに基づいて、より適切なパーサを使用することを検討して、例えばこれはあなたのテキストのブロックを与える

+2

2番目のスパンを返します。新しいパーサーのためにコードを書き直さなければならないだろう。 – spykr

0

PHP Domをお試しください:

$dom = new DomDocument; 
$dom->loadHtml(' 
    <span class=1>text here</span> TEXT I NEED TO GET <span class=2>more text</span> 
'); 

$xpath = new DomXpath($dom); 
foreach ($xpath->query('//body/text()') as $textNode) { 
    echo $textNode->nodeValue; // will be: ' TEXT I NEED TO GET ' 
} 
+0

何loadHTMLはHTMLフラグメントに対して行います。 – Gordon

+0

@Gordonあなたはおそらく正しいでしょうが、このトピックは閉じられているようです。 ;) – Yoshi

0

検索( 'テキスト'、$インデックス)

参照してください。

これを試してみてください:

出力:

TEXT I NEED TO GET 

DEMO

あなたが知らない時にXPathは非自明であるので、あなたはそれにいくつかの説明を追加したい場合があります
関連する問題