gpt4 book ai didi

php - XML 从数组中搜索节点并将新数据添加到新节点

转载 作者:数据小太阳 更新时间:2023-10-29 02:46:19 26 4
gpt4 key购买 nike

从本教程 - 关于在 PHPFreaks 上添加节点的部分,我确实在那里发帖但没有奇怪的回复,因为教程是由他们编写的。

http://www.phpfreaks...ndling-xml-data

当我使用我的 xml 文件时,它会创建节点但不会插入新数据。没有页面错误。我确定我刚刚错过了一些非常简单的事情,经过几个小时的尝试,我现在要低头寻求帮助。

这是我正在使用的脚本

<?php
// isbn => pages
$page_numbers = array(
'1234' => '654', // insert data into catparent node
'5678' => '789', // insert data into catparent node
);
$dom = new DOMDocument();
$dom->load('edtest.xml');
$xpath = new DOMXPath($dom);
$items = $xpath->query('item');
foreach($items as $item)
{
$item->appendChild($dom->createElement('catparent', $page_numbers[$item->getAttribute('catcode')]));
}
$dom->save('edtest_new.xml');
?>

我的 XML

<?xml version="1.0" encoding="UTF-8"?>
<items>
<item>
<catcode>1234</catcode>
<catdesc>Systems - System Bundles</catdesc>
<price_cost>999.95</price_cost>
<price_sell>999.95</price_sell>
</item>
</items>

输出 XML

<?xml version="1.0" encoding="UTF-8"?>
<items>
<item>
<catcode>1234</catcode>
<catdesc>Systems - System Bundles</catdesc>
<price_cost>999.95</price_cost>
<price_sell>999.95</price_sell>

<catparent></catparent> // it creates but does not insert required data

</item>
</items>

它运行脚本创建所需的节点,但不插入所需的数据。脚本的目标是找到<catcode> = 1234。并添加一个新的 <catparent> </catparent>包含数组中所需的数据。

是否有更好的方法来实现结果或只是需要更正。

谢谢

最佳答案

您正在使用 $item->getAttribute('catcode') .然而,catcode不是 <item> 的属性, 它是一个子元素。

尝试

$catcode = $item->getElementsByTagName('catcode');
$parent_code = $page_numbers[ $catcode[0] ];

$item->appendChild( $dom->createElement('catparent', $parent_code) );

关于php - XML 从数组中搜索节点并将新数据添加到新节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8310273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com