php - 使用 PHP 处理 XML 文件/数据
问题描述
我有一个 XML 文件作为主文件 (master.xml),它的内容是空白的。
<?xml version="1.0" encoding="UTF-8"?>
<master/>
我有一个循环,我在其中获取一些数据并将它们转换为 xml 文件(item.xml),它们的内容就像
<?xml version="1.0" encoding="UTF-8"?>
<master>
<item>
<key1>value1</key1>
<key2>value2</key2>
<key3>value3</key3>
</item>
</master>
我想要的只是能够从中获取项目item.xml
并将其插入master.xml
到主标签下,因此最终结果看起来像
<?xml version="1.0" encoding="UTF-8"?>
<master>
<item>
<key1>value1</key1>
<key2>value2</key2>
<key3>value3</key3>
</item>
<item>
<key1>value1</key1>
<key2>value2</key2>
<key3>value3</key3>
</item>
<item>
<key1>value1</key1>
<key2>value2</key2>
<key3>value3</key3>
</item>
<item>
<key1>value1</key1>
<key2>value2</key2>
<key3>value3</key3>
</item>
</master>
我不知道它是否有帮助,但现在的代码是这样的。
$targetDom = new DOMDocument();
$targetDom->load('master.xml');
while($row = $sql->fetch(PDO::FETCH_ASSOC)) {
// Data beeing processed and stored as item.xml
$sourceDom = new DOMDocument();
$sourceDom->load('item.xml');
foreach ($sourceDom->documentElement->childNodes as $child) {
$targetDom->appendChild(
$targetDom->importNode($child, TRUE)
);
}
}
上面的代码有这个结果
<?xml version="1.0" encoding="UTF-8"?>
<master/>
<item>
<key1>value1</key1>
<key2>value2</key2>
<key3>value3</key3>
</item>
<item>
<key1>value1</key1>
<key2>value2</key2>
<key3>value3</key3>
</item>
<item>
<key1>value1</key1>
<key2>value2</key2>
<key3>value3</key3>
</item>
<item>
<key1>value1</key1>
<key2>value2</key2>
<key3>value3</key3>
</item>
我错过了什么?
解决方案
您需要将项目附加到$targetDom
利用:
$targetDom->documentElement->appendChild(
$targetDom->importNode($child, TRUE)
);
推荐阅读
- javascript - 如何在每个鼠标悬停事件中更改单个 div 的颜色?
- python - (Flask)如何在 fetchall 后修改列表
- intellij-idea - 如何阻止 IntelliJ 切换回项目代码样式?
- sql - 将单个 SQL Server 查询合并为 1 个查询
- javascript - 尝试从猫鼬保存返回承诺时出错
- javascript - Discord.js 按 ID 删除消息
- python - 为什么用 python-docx 复制的 Word 文件的 XML 与原始文件不同
- java - Spring Cloud 上的 KafkaHeaders.RECEIVED_MESSAGE_KEY 与 KafkaHeaders.MESSAGE_KEY 标头
- c++ - 如何实现模板方法的自动类型转换?
- r - 如何将数据框的行名与嵌入在另一个数据框的行名中的文本匹配,并提取整行