首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SimpleXMLElement - addChild实例

SimpleXMLElement - addChild实例
EN

Stack Overflow用户
提问于 2019-03-15 21:03:57
回答 1查看 26关注 0票数 0

我有两个SimpleXmlElement实例,例如:

代码语言:javascript
复制
$xmlMain = new SimpleXmlElement('<user><name></name></user>');

$xmlPart = new SimpleXmlElement('<user_details...</user_details>');

我可以在$xmlMain中的某个地方插入$xmlPart元素吗?

我希望结果是在$xmlMain中注入$xmlPart实例,因此结果将是

代码语言:javascript
复制
<user><name><user_details>...</user_details></name></user>
EN

回答 1

Stack Overflow用户

发布于 2019-03-16 00:42:44

SimpleXML不太擅长将数据从一个节点复制到另一个节点。您可以改为使用DOMDocument方法,方法是首先将名称导入到DOMNodes中,然后将第二个节点导入到第一个节点的文档中,然后将其附加到SimpleXMLElements元素...

代码语言:javascript
复制
$xmlMain = new SimpleXmlElement('<user><name></name></user>');

$xmlPart = new SimpleXmlElement('<user_details>...</user_details>');

// Import xmlMain <name> element into a DOMNode
$xmlMD = dom_import_simplexml($xmlMain->name);
// Import xmlPart into DOMNode and then import that node into the xmlMD document
$importedNode = $xmlMD->ownerDocument->importNode(dom_import_simplexml($xmlPart), true);
// Add the imported node into the first node (the <name> element)
$xmlMD->appendChild($importedNode);

echo $xmlMain->asXML();

这会给你..。

代码语言:javascript
复制
<?xml version="1.0"?>
<user><name><user_details>...</user_details></name></user>

另一种可能更简单的方法是首先在$xmlMain文档中创建$xmlPart元素……

代码语言:javascript
复制
$xmlMain = new SimpleXmlElement('<user><name></name></user>');
$userDetails = $xmlMain->name->addChild("user_details");
$userDetails->addChild("name", "Fred");

echo $xmlMain->asXML();

创建...

代码语言:javascript
复制
<?xml version="1.0"?>
<user><name><user_details><name>Fred</name></user_details></name></user>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55183269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档