我有一个本地服务器,我正在接收xml文件。收到的xml文件很好,但我对如何将XML文件传递到数据库有疑问。
我简单地检索xml文件:
$xml_post = file_get_contents('php://input');
我收到的xml文件如下所示:
<city>
<id>1081</id>
<name>athens</name>
<country>Greece</country>
<info>etc etc etc</info>
</city>
我已经用phpmyadmin手动创建了一个具有完全相同节点的数据库,因此我可以正确保存所有内容。
现在我想用mysql_query插入我在数据库中获得的内容。 像这样:
mysql_query("INSERT INTO cities (id, city ,country , info)
VALUES (4 , 'athens' , 'greece' , 'etc etc etc'");
但是哪些变量我存储了我的xml以将它们用作上述语句中的值?我如何解析我必须将所有节点存储在变量中的xml文件,然后将它们正确地传递给数据库?
答案 0 :(得分:2)
使用示例:
<?php
$xml = '<city>
<id>1081</id>
<name>athens</name>
<country>Greece</country>
<info>etc etc etc</info>
</city>
';
$xml = simplexml_load_string($xml);
//1081
echo $xml->id;
//athens
echo $xml->name;
?>
如果XML中有多个节点,则每个节点都是一个对象数组:
$xml = '
<citys>
<city>
<id>1081</id>
<name>athens</name>
<country>Greece</country>
<info>etc etc etc</info>
</city>
<city>
<id>1082</id>
<name>somwhere else</name>
<country>Spain</country>
<info>etc etc etc</info>
</city>
</citys>
';
$xml = simplexml_load_string($xml);
//print_r($xml);
foreach($xml->city as $val){
echo $val->name;
}
//or
echo $xml->city[0]->name;
//athens
echo $xml->city[1]->name;
答案 1 :(得分:1)
您需要将XML解析为PHP可读的数据,然后在SQL插入中使用该数据。
PHP SimpleXML Tutorial可能是一个开始的地方。