我正在尝试检索多个 .xml 文件(001.xml、002.xml、002.xml 等),从数据库表中添加新的子信息,然后将修改后的信息保存为本地新文件。
即使我在数据库中有很多行,使用 SimpleXMLElement 函数也可以防止脚本多次执行。
这是代码的简化版本:
$query=mysql_query('SELECT id FROM `table`');
while($row = mysql_fetch_array($query))
{
$contents = file_get_contents('path_to_url'.$row[0]);
$xml = new SimpleXMLElement($contents);
// Append information to xml data
for($i=0; $i < count($xml->parent->children->child); $i++)
{
$query=mysql_query('
SELECT `age`
FROM `table2`
WHERE `name` = '.$xml->parent->children->child[$i]->name
);
$childage = mysql_fetch_array($query);
$xml->parent->children->child[$i]->addChild('age',$childage[0]);
}
$file = 'id'.$row[0].'.xml';
file_put_contents($file, $xml->asXML());
}
这是原始示例 .xml 数据:
001.xml
<parent>
<children>
<child>
<name>herp</name>
</child>
<child>
<name>derp</name>
</child>
</children>
<parent>
002.xml
<parent>
<children>
<child>
<name>manny</name>
</child>
<child>
<name>joe</name>
</child>
<child>
<name>jack</name>
</child>
</children
</parent>
这将是输出(注意 002.xml 没有写入,因为循环停止)
001.xml
<parent>
<children>
<child>
<name>herp</name>
<age>10</age>
</child>
<child>
<name>derp</name>
<age>12</age>
</child>
</children>
</parent>