DOMDocument - 将元素合并为一个 XML
DOMDocument - merge elements into one XML
正在尝试将 root 和 body 合并为一个 XML。
2个元素在创建时被拆分的原因是因为它们将被预先构造并存在于不同的文件中,从而被加载。
我的代码:
<?php
$root = new DOMDocument();
$root->loadXML('<root/>');
$body = new DOMDocument();
$body->loadXML('<body/>');
foreach ($body->documentElement->childNodes as $child) {
$body->documentElement->appendChild(
$body->importNode($child, TRUE)
);
}
echo $body->saveXML();
想要的结果:
<?xml version="1.0"?>
<root>
<body/>
</root>
$body->documentElement->childNodes->length
的长度为 0,因为 <body/>
没有子节点
如要将 $body
导入 $root
,您应该附加子节点并使用根而不是子节点导入节点。
例如
$root = new DOMDocument();
$root->loadXML('<root/>');
$body = new DOMDocument();
$body->loadXML('<body/>');
foreach ($body->childNodes as $child) {
$root->documentElement->appendChild(
$root->importNode($child, TRUE)
);
}
echo $root->saveXML();
输出
<?xml version="1.0"?>
<root><body/></root>
正在尝试将 root 和 body 合并为一个 XML。 2个元素在创建时被拆分的原因是因为它们将被预先构造并存在于不同的文件中,从而被加载。
我的代码:
<?php
$root = new DOMDocument();
$root->loadXML('<root/>');
$body = new DOMDocument();
$body->loadXML('<body/>');
foreach ($body->documentElement->childNodes as $child) {
$body->documentElement->appendChild(
$body->importNode($child, TRUE)
);
}
echo $body->saveXML();
想要的结果:
<?xml version="1.0"?>
<root>
<body/>
</root>
$body->documentElement->childNodes->length
的长度为 0,因为 <body/>
如要将 $body
导入 $root
,您应该附加子节点并使用根而不是子节点导入节点。
例如
$root = new DOMDocument();
$root->loadXML('<root/>');
$body = new DOMDocument();
$body->loadXML('<body/>');
foreach ($body->childNodes as $child) {
$root->documentElement->appendChild(
$root->importNode($child, TRUE)
);
}
echo $root->saveXML();
输出
<?xml version="1.0"?>
<root><body/></root>