相关疑难解决方法(0)

PHP - SimpleXML - AddChild与另一个SimpleXMLElement

我正在尝试构建一个相当复杂的XML文档.

我有一堆重复的XML文档部分.我以为我会使用多个字符串模板作为节的基础文档,并使用simplexml_load_string创建XML元素的实例.

所以我有一个SimpleXMLElement实例作为基础文档

$ root = simplexml_load_string($ template_root);

然后我遍历我的数据库中的一些项目,创建新的SimpleXMLElement,如下所示:

for(bla bla bla):

$ item = simplexml_load_string($ template_item); //用项目做的东西//尝试将项目添加到根文档中
//被困在这里..不能做$ root-> items-> addChild($ item)

ENDFOR;

我不能调用addChild,因为它只需要一个标签名称和值..你不能addChild另一个SimpleXMLElement.

我在这里错过了什么吗?看起来真的很蠢,addChild不能将SimpleXMLELement作为参数.

有没有其他方法可以做到这一点?(除了使用不同的xml库)

php simplexml

27
推荐指数
3
解决办法
3万
查看次数

添加 XML 块作为 SimpleXMLElement 对象的子对象

我有这个 SimpleXMLElement 对象,其 XML 设置类似于以下内容...

$xml = <<<EOX
<books>
    <book>
        <name>ABCD</name>
    </book>
</books>
EOX;

$sx = new SimpleXMLElement( $xml );
Run Code Online (Sandbox Code Playgroud)

现在我有一个名为 Book 的类,其中包含信息。关于每本书。同班还可以吐出书籍信息。类似于上面的 XML 格式(嵌套块).. 例如,

$book = new Book( 'EFGH' );
$book->genXML();

... will generate
<book>
    <name>EFGH</name>
</book>
Run Code Online (Sandbox Code Playgroud)

现在我试图找出一种方法,通过它我可以使用这个生成的 XML 块并将其附加为 的子项,以便现在它看起来像......例如......

// Non-existent member method. For illustration purposes only.
$sx->addXMLChild( $book->genXML() );    

...XML tree now looks like:
<books>
    <book>
        <name>ABCD</name>
    </book>
    <book>
        <name>EFGH</name>
    </book>
</books>
Run Code Online (Sandbox Code Playgroud)

根据我在 SimpleXMLElement 上阅读的文档,addChild()不会为您完成此操作,因为它不支持 XML 数据作为标记值。

php xml simplexml addition simpledom

5
推荐指数
1
解决办法
5855
查看次数

标签 统计

php ×2

simplexml ×2

addition ×1

simpledom ×1

xml ×1