2013-03-21 36 views
2
public function DOMChangeElementContent($Element,$NewContent) 
{ 
    //Pull the original element from the currently loaded DOM document 
    $OriginalElement = $this->DOM->getElementById($Element); 
    //Create a new element 
    $NewElement = $this->DOM->createElement($Element, $NewContent); 

    //Replace the old element with the new element 
    $this->DOM->DOMreplaceChild($NewElement, $OriginalElement);  
} 

由於某種原因,我不斷收到'原始元素無法找到'元素,即使我將它從相同的文檔中拉出來,我試圖將其替換掉。我是否以某種方式錯誤地使用它?這裏回答的問題都沒有解釋我做錯了什麼。如何正確使用DOMDocument-> ReplaceChild與DOMDocument-> getElementById結合使用?

+0

在執行getElementById後檢查'$ OriginalElement'並查看它是否正確返回元素。 – Adrian

+0

$ OriginalElement確實返回了正確的元素,DOMreplaceChild仍然拒絕替換它。 – Flubber

回答

2

replaceChildDOMNode的方法,而不是文檔本身。您必須在要替換的元素的父節點上調用它:

$OriginalElement->parentNode->DOMreplaceChild($NewElement, $OriginalElement); 
+0

所以這就是爲什麼!非常感謝 - 這解釋了一切。 – Flubber

相關問題