$contents = "<?xml version='1.0' ?>
<authed>1</authed>
<book>read</book>";
我有一个像这样的xml字符串 我想在根标记
中添加所有元素 像这样$contents = "<?xml version='1.0' ?>
<root>
<authed>1</authed>
<book>read</book>
</root>";
答案 0 :(得分:1)
XML上的字符串操作就像HTML上的正则表达式操作一样。 This回答是正确的。
答案 1 :(得分:0)
您可以使用substr提取第一部分(xml版本)和第二部分(元素)然后重新组合
答案 2 :(得分:0)
如果您想要添加根元素,则可以执行
$contents = str_replace("<?xml version='1.0' ?>",
"<?xml version='1.0' ?><root>",
$contents . '</root>');
这会将prolog替换为自身以及内容中的根元素和附加的根关闭标记。但是,请记住,从技术上讲,我们只是在这里插入随机字符串,而不是节点,这意味着<root>
的处理方式与oot><aut
相同。使用字符串时,尖括号没有特殊含义。我们自己定义了语义。对于像上面这样的简单用例,这是可以的。
但是如果您想使用节点,请考虑使用XML libraries of PHP。
答案 3 :(得分:0)
这不是有效的XML。 XML文档只有一个根元素。 无论生成什么 not-XML 标签汤都应该修复,以便输出一些有效的XML。
否则,如果您遇到麻烦,可以使用任何类型的字符串替换。
$contents = preg_replace('#^<\\?.*?\\?>#', '$0<root>', $contents) . '</root>';