PHP DomDocument - createDocumentFragment不适用于loadHTML

时间:2014-02-12 08:13:44

标签: php html xml dom fragment

我有一个包含html的字符串,我想在DomElement中插入这个html。

为此,我做了:

$abstract = "<p xmlns:default="http://www.w3.org/1998/Math/MathML">Test string <formula type="inline"><default:math xmlns="http://www.w3.org/1998/Math/MathML"><default:mi>&pi;</default:mi></default:math></formula></p>"

$dom = new \DOMDocument();
@$dom->loadHTML($abstract);     
$frag = $dom->createDocumentFragment();

当var转储$ frag-&gt; nodeValue时,我得到null。有什么想法吗?

谢谢。

1 个答案:

答案 0 :(得分:3)

我不确定您的期望,您创建了一个新片段并且没有添加任何内容。即使你这样做也行不通,因为文档片段不是节点,它是一个帮助构造,用于将XML片段添加到文档中。

以下是一个例子:

$dom = new \DOMDocument();
$body = $dom->appendChild($dom->createElement('body'));

$fragment = $dom->createDocumentFragment();
$fragment->appendXml('<p>first</p>second');

$body->appendChild($fragment);

echo $dom->saveHtml();

输出:

<body><p>first</p>second</body>