Xpath nodeValue / textContent无法查看<br/>标签

时间:2017-08-21 02:19:21

标签: php html xpath

HTML如下:

<a href="#">ABC<BR>DEF</a>

但是,nodeValue和textContent属性都显示"ABCDEF"作为值。

是否可以显示或解析<BR>

2 个答案:

答案 0 :(得分:3)

也许这会帮助你:DOMNode::C14N

它将返回节点的HTML。

<?php
$a = '<a href="#">ABC<BR>DEF</a>';
$doc = new DOMDocument();
@$doc->loadHTML($a);
$finder = new DomXPath($doc);
$nodes = $finder->query("//a");
foreach ($nodes as $node) {
    var_dump($node->c14n());
}

Demo

答案 1 :(得分:1)

我知道你已经解决了你的问题,但我想添加更直接的解决方法...

$a = '<a href="#">ABC<BR>DEF</a>';
$doc = new DOMDocument();
$doc->loadHTML($a);
$xp = new DomXPath($doc);
$nodes = $xp->query("//a/node()");
$text = '';
foreach ($nodes as $node) {
     $text .= $doc->saveHTML($node);
}
echo $text;

...输出

ABC<br>DEF