使用php和xpath获取html标记后的文本


getting text after html tag with php and xpath

我从一个网页的卷曲碎片中得到了以下html:

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

我想要第三个<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,我当然会得到的全部内容。如何提取第二个<br>之后的单词。我的话总是在第三次<br>之后。

看起来很简单,但我无法理解。

尝试类似这样的查询

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

在这里工作演示-http://codepad.viper-7.com/00oeZh

这里的关键是following-sibling轴。

<dl>
        <dt>info</dt>
        <dd>
            <a>a1</a>b2
            <a>a2</a>
        </dd>
    </dl>

获取标签后的b2。xpath如下所示。//dl/dd/a[1]/以下同级::text()