是否可以在没有根节点的情况下获取xml字符串形式DomDocument
或SimpleXml
?
DomDocument->saveXml()
返回此信息:
<root>
<item>text</item>
<item>text</item>
</root>
我需要:
<item>text</item>
<item>text</item>
我可以使用DomDocument
获取此信息吗?没有正则表达式有没有办法做到这一点?
答案 0 :(得分:1)
&#34;内部XML&#34;就像&#34;内部HTML&#34; innerHTML
属性,在Javascript和其他语言中使用...我想我们可以忽略需要一些解释的@michi评论。关于@CBroe评论:如果你想象DOMDocumentFragment,或者从innerXML到另一个(例如过滤的)XML的字符串XML替换,则没有意义。您的好例子(item
列表)是一个字符串XML,也可以转换为DOMNodeList。
获取所有XML的最快捷最简单的方法是使用saveXML()
,它返回一个包含您想要的字符串的字符串。
有两种方法可以切断您不需要的零件(一种&#34; trim 标签&#34;):
遍历所有$node->childNodes的循环,将每个子节点连接saveXML($subnode)
。
也许更简单快速,但不安全,比如
$innerXML = preg_replace(
'#^\s*<([a-z0-9_:]+)[^>]*>(.+?)</\\1>\s*$#s',
'$2',
$dom->saveXML($node)
);