Xpath - 在标记后选择文本节点

时间:2014-07-03 08:28:24

标签: html xpath

为什么这不起作用,我已经搜索了其他解决方案,这些解决方案看起来与我提出的相同,但它只是不适合我。

我的XPath是

//b/following-sibling::text()[1]

我的HTML:

<b>Foo1</b> Bar 1 <br/><br/>
<b>Foo2</b> Bar 2 <br/><br/>

1 个答案:

答案 0 :(得分:2)

您没有告诉您使用哪个环境来执行XPath查询,但您可能只需要在括号[]前面删除转义的反斜杠。 (我之前从未见过这种语法。)

这里有一个PHP示例,它使用的是XPath1.0,这是最低的XPath版本,这意味着它没有“花哨”的东西:

$doc = new DOMDocument();
$doc->loadHTML('
<b>Foo1</b> Bar 1 <br/><br/>
<b>Foo2</b> Bar 2 <br/><br/>
');

$selector = new DOMXPath($doc);
foreach($selector->query('//b/following-sibling::text()[1]') as $e) {
    var_dump($e->nodeValue);
}

输出:

string(7) " Bar 1 "
string(7) " Bar 2 "