2011-01-20 40 views

回答

14

您從手動尋找

- DOMDocumentFragment::appendXML — Append raw XML data

例子:

$doc = new DOMDocument(); 
$doc->loadXML("<root/>"); 
$f = $doc->createDocumentFragment(); 
$f->appendXML("<foo>text</foo><bar>text2</bar>"); 
$doc->documentElement->appendChild($f); 
echo $doc->saveXML(); 
+0

謝謝,它的工作就像一個魅力! – fabio 2011-01-20 19:25:51

+1

注意:您的HTML輸入必須也是有效的XML,否則您將收到錯誤。我這樣做的方式是創建另一個文檔,將HTML加載到該文檔中(作爲HTML,而不是XML),然後將新創建的節點深入導入到我的原始文檔中。 – 2014-09-11 01:02:43

5

如果你沒有在範圍document root一個參考,你可以隨時通過ownerDocument訪問任意節點的屬性:

$frag = $trElement->ownerDocument->createDocumentFragment(); 
$frag->appendXML("<a href='?select_user=4'>Username</a>"); 
$trElement->appendChild($frag); 
1

是的,你可以用DOMDocument::createDocumentFragment做到這一點:

$fragment = $dom->createDocumentFragment(); 
$fragment->appendXML('<a href="select_user=4">Username</a>'); 
$element->appendChild($fragment); 

在這種情況下,它會更簡單與正常createElement調用做到這一點:

$el = $dom->createElement('a', 'Username'); 
$el->setAttribute('href', 'select_user=4'); 
$element->appendChild($el); 

在每種情況下,$element是DOM您要附加代碼的元素。