0

我有一个本地服务器,我在其中接收 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 文件,然后将它们正确传递给数据库?

4

2 回答 2

2

尝试使用simplexml_load_string()

示例用法:

<?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;
于 2013-01-14T21:21:43.353 回答
1

您需要将 XML 解析为 PHP 可读的数据,然后在 SQL 插入中使用该数据。

PHP SimpleXML 教程可能是一个开始的地方。

于 2013-01-14T21:22:03.900 回答