使用php和xpath在html标签后获取文本

时间:2012-08-29 00:14:13

标签: php html 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>之后。

看起来如此简单,却让我感到不安。

2 个答案:

答案 0 :(得分:4)

尝试类似此查询的内容

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

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

此处的关键是following-sibling Axes

答案 1 :(得分:0)

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

在标签后获取b2。 xpath如下所示。 //分升/ DD / A [1] /以下同胞::文本()