2015-09-16 1 views
2

Мне нужно получить содержимое элемента и поместить его в другой элемент. Я использую createTextNode, чтобы добавить этот контент в качестве дочернего элемента к целевому элементу.Как получить содержимое элемента с узлами HTML?

Как я добавляю его как текстовый узел, < и > преобразуется в &lt; и &gt;. Как добавить этот контент без преобразования?

Например:

<li id="fn1"> 
<div> 
<a>some text 
</a> 
</div> 
</li> 

Ожидаемый результат:

<p> 
<div> 
    <a>some text 
    </a> 
</div> 
</p> 

Но мой выход, как,

<p> 
&lt;div&gt; 
&lt;a&gt;some text&lt;/a&gt; 
&lt;/div&gt; 
</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))); но тот же результат

+0

Вы можете использовать 'htmlspecialchars_decode' для вывода в формате HTML. – x3ns

+0

Я попробовал это: '$ ch-> appendChild ($ dom-> createTextNode (htmlspecialchars_decode ($ pvalue))); ', но тот же результат, что и в виде textnode, или где я должен использовать эту функцию в коде? – Learning

ответ

2

Если вы хотите

  • перемещения узел внутри того же документа: удалить этот узел с помощью DOMNode::removeChild и добавьте возврат значение этой функции через DOMNode::appendChild к ее новому родительскому узлу.
  • копия узел в новое место в пределах того же документа, сделайте глубокий клон узла через DOMNode::clone узел и добавьте его.
  • перевод узел в другой документ, импортируйте этот узел в новый документ через DOMDOcument::importNode, а затем добавьте его в новый родитель.
+0

Спасибо! где использовать 'cloneNode (true)' в моем коде? – Learning

+0

какой из трех сценариев в вашем случае? перемещать, копировать или передавать? – VolkerK

+0

Нужно скопировать узлы (содержимое) определенного элемента в целевой элемент – Learning