2011-01-20 77 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您要附加代码的元素。