xml - DOMDocument - 将元素合并为一个 XML
问题描述
试图将根和正文合并到一个 XML 中。这两个元素在创建时被拆分的原因是因为它们将被预先构建并存在于不同的文件中,因此被加载。
我的代码:
<?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>
推荐阅读
- ionic-framework - 将曲线添加到选定的离子选项卡
- flutter - 我是否需要为 Flutter 中的 Hive TypeAdapter 创建创建额外的模型?
- css - 为什么在某些浏览器上,背景动画会在前景框上出现故障?
- r - 计算 R 中数据框中的组之间共享 account_ID 的次数
- javascript - onmouseenter 闪烁提示
- python - 如何使用 Pyspark Dataframe 分配一行?
- java - 如何创建像电子游戏一样的 LootBox 系统
- javascript - 如何隐藏文本/ div 并用星号替换它?
- image - Octave:显示灰度矩阵显示和全黑图像的功能
- javascript - Discord Giveaway 机器人始终将机器人作为赢家