【发布时间】:2015-03-17 14:49:46
【问题描述】:
我正在将 HTML 片段加载到 DOMDocument 中,对其进行修改,然后转换回字符串。
我能得到的最接近的是这个......
$html_string = "<b>my html fragment</b><div>more child nodes</div>";
$doc_html = new DOMDocument();
$doc_html->loadHTML( $html_string );
//do stuff
$html_string = $doc_html->saveHTML( $doc_html->getElementsByTagName('body')->item(0) );
这里的问题是 loadHTML 将它包装在 <html> 和 <body> 标记中。所以我使用 getElementsByTagName 仅对 body 节点进行字符串化,但它包括它自己的 body 节点......
<body><b>my html fragment</b><div>more child nodes</div></body>
但我只想要像输入字符串一样的子节点。
除了循环所有子节点并连接一个字符串/在结果字符串上运行一个 req ex 之外,还有一种简单的方法可以做到这一点吗?
米
【问题讨论】:
-
改用
saveXML? saveHTML 尝试保存一个 html DOCUMENT,这意味着它将添加缺少的 body/html 标签。 -
是的,它仍然会序列化包含节点。目前我正在使用这个.. php.net/manual/en/class.domelement.php#101243
标签: php domdocument