我有一些html字符串:
$ string - 取自用户的字符串。
$dom = new DomDocument;
$dom ->preserveWhiteSpace = false;
$dom ->loadHTML('<?xml encoding="UTF-8">'.$string);
如何使用PHP在DOM树中找到最后一个文本节点?我想要做的是在结束字符串的末尾添加一些额外的字符。接下来,我将用新字符串替换旧文本节点。
答案 0 :(得分:1)
假设
$xml = <<< XML
<a>
First Text Node
<b>foo</b>
Another Text Node
<c>bar</c>
Not the last Text Node
<empty/>
</a>
XML;
使用此代码:
$dom = new DOMDocument;
$dom->loadXml($xml);
$xp = new DOMXPath($dom);
$textNodes = $xp->query('//text()');
$lastTextNode = $textNodes->item($textNodes->length - 1);
$lastTextNode->nodeValue .= 'some stuff appended to the end';
echo $dom->saveXml();
将输出:
<?xml version="1.0"?>
<a>
First Text Node
<b>foo</b>
Another Text Node
<c>bar</c>
Not the last Text Node
<empty/>
some stuff appended to the end</a>
如果这不是您认为的最后一个节点,请澄清问题。