我从一个网页的卷曲碎片中得到了以下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()