php字符串函数concat

时间:2010-02-19 13:17:09

标签: php xml string function concat

$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>";

4 个答案:

答案 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>';