【发布时间】:2015-12-12 14:22:15
【问题描述】:
我需要获取一个元素的内容并将该内容放入另一个元素中。我使用createTextNode 将该内容作为子元素附加到目标元素。
当我将其附加为文本节点时,< 和 > 被转换为 < 和 >。如何在不转换的情况下附加该内容?
例如:
<li id="fn1">
<div>
<a>some text
</a>
</div>
</li>
预期输出:
<p>
<div>
<a>some text
</a>
</div>
</p>
但我的输出是这样的,
<p>
<div>
<a>some text</a>
</div>
</p>
我的代码
$ch=dom->createElement("p");
$li=$xp->query("//li[contains(@id, 'fn')]");
foreach($li as $liv) {
$linodes = $liv->childNodes;
$pvalue="";
foreach ($linodes as $lin) {
$pvalue.=$dom->saveXML($lin);}
$ch->appendChild($dom->createTextNode($pvalue)); }
我试过了,
$ch->appendChild($dom->createTextNode(htmlspecialchars_decode($pvalue))); 但输出相同
【问题讨论】:
-
您可以使用
htmlspecialchars_decode来输出 HTML 应有的内容。 -
我试过了,
$ch->appendChild($dom->createTextNode(htmlspecialchars_decode($pvalue)));,但输出与附加为 textnode 的输出相同,否则我应该在代码中的哪里使用该函数?
标签: php html dom domdocument