如何获取具有 HTML 个节点的元素的内容?
how to get content of an element with HTML nodes?
我需要获取一个元素的内容并将该内容放入另一个元素中。我使用 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)));
但输出相同
如果你想
- 移动同一文档中的节点:通过DOMNode::removeChild and append the return value of that function via DOMNode::appendChild将该节点移至其新的父节点。
- 将节点复制到同一文档中的新位置,通过DOMNode::clone节点深度克隆节点并附加它。
- 将节点转移到另一个文档,通过DOMDOcument::importNode将该节点导入到新文档,然后将其附加到新的父文档。
我需要获取一个元素的内容并将该内容放入另一个元素中。我使用 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)));
但输出相同
如果你想
- 移动同一文档中的节点:通过DOMNode::removeChild and append the return value of that function via DOMNode::appendChild将该节点移至其新的父节点。
- 将节点复制到同一文档中的新位置,通过DOMNode::clone节点深度克隆节点并附加它。
- 将节点转移到另一个文档,通过DOMDOcument::importNode将该节点导入到新文档,然后将其附加到新的父文档。