3

私はウェブページのカールスクラップから次のhtmlを持っています:

<div id="box">
<br>
Your word(s):
<br>
<br>
functionally
<br>
<br>
<br>

私は3番目の後にあるものが欲しいです<br>/html/body/div[2]/div/br[3]-それは機能です

@$itemCell = $xpath->query( "/html/body/div[2]/div/br[3]" );
$word = $itemCell->item( 0 );
return $word->nodeValue;

これは何も返しません。もちろん、私だけにバックアップすると、ボックス/divの内容全体が表示されます。2番目以降の単語を抽出するにはどうすればよいですか。私の言葉は常に3番目の後になります。<br><br>

とても単純なようですが、それでも私は逃げます。

4

2 に答える 2

4

このクエリのようなものを試してください

$textNodes = $xpath->query('//div[@id="box"]/br[3]/following-sibling::text()[1]');

ここでの作業デモ-http://codepad.viper-7.com/00oeZh

ここで重要なのはfollowing-sibling です。

于 2012-08-29T00:34:43.960 に答える
0
<dl>
        <dt>info</dt>
        <dd>
            <a>a1</a>b2
            <a>a2</a>
        </dd>
    </dl>

タグの後にb2を取得します。xpathは次のようになります。// dl / dd / a [1] / follow-sibling :: text()

于 2013-06-01T14:16:35.733 に答える