gpt4 book ai didi

php - 如何使用PHP修改xml文件?使用节点检索新子节点的值并添加它们

转载 作者:行者123 更新时间:2023-12-04 06:51:33 27 4
gpt4 key购买 nike

我在这里粘贴了我需要的示例:http://pastie.org/1005178

我有一个 xml 文件,上面写着以下信息

<state>
<info>
<name>hello</name>
<zip>51678</zip>
</info>
<info>
<name>world</name>
<zip>54678</zip>
</info>
</state>

现在我需要创建一个新的 xml 文件,它具有以下内容
<state>
<info>
<name>hello</name>
<zip>51678</zip>
<lat>17.89</lat>
<lon>78.90</lon>
</info>
<info>
<name>world</name>
<zip>54678</zip>
<lat>16.89</lat>
<lon>83.45</lon>
</info>
</state>

所以,基本上我需要向每个信息元素添加 lat 和 lon 节点。
这些 lat 和 lon 对应于邮政编码,它们存储在包含 3 个字段的 mysql 文件中 - pin、lat 和 lon

我如何递归地做到这一点。我说一个文件中有 1000 个信息元素

请给我一个示例代码,因为我已经尝试使用 simplexml 并阅读了文档,但没有看到正确理解它

最佳答案

我会在一个数组中加载所有的地理位置信息(我假设“pin”是邮政编码?),然后循环遍历您的 <info/>节点并插入相应的<lon/><lat/> .

// obviously you create that array by loading the stuff from MySQL
$geo = array(
51678 => array('lat' => 17.89, 'lon' => 78.90),
54678 => array('lat' => 16.89, 'lon' => 83.45)
);

$state = simplexml_load_file('state.xml');

foreach ($state->info as $info)
{
$zip = (string) $info->zip;
$info->lat = $geo[$zip]['lat'];
$info->lon = $geo[$zip]['lon'];
}

// save to the same file, or another if you want
$state->asXML('result.xml');

关于php - 如何使用PHP修改xml文件?使用节点检索新子节点的值并添加它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3051178/

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