假设我需要将此 HTML 复制到一个变量中(服务器端,因此是 PHP):
<text>
<i>The text
<inserted> </inserted>
<inserted>has changed</inserted>
</i>
</text>
所以我使用这种代码:
$dom = new DOMDocument();
$dom->loadHTML($html); # HTML from above
foreach ($x->query("//text") as $node)
{
$the_html .= $node->C14N()
}
(DOMNode::C14N()
对我来说是一个超级发现)
所以,一切都很好,除了结果是这样的:
<text>
<i>The text
<inserted></inserted>
<inserted>has changed</inserted>
</i>
</text>
首先里面的空间<inserted>
已经没有了!像这样调试:
echo 'damn' . $node->firstChild->firstChild->nodeValue . 'it';
也返回“该死的”。
有没有办法保留空间?(我尝试过,DOMDocument::$preserveWhiteSpace
但显然不是解决方案。)
还是不可能,我应该改变我的方法?