如何将消费的Web服务结果解析为数据库表?

时间:2011-02-22 18:18:30

标签: php mysql xml

我正在使用国家气象服务的REST网络服务来返回位置的预测数据。我可以通过调用XSLT来获取数据并将其显示在屏幕上,我可以使用XSLT将返回的XML转换为SQL插入语句的文件,然后我可以手动导入。但是,我对如何自动执行此操作感到困惑。

一些澄清:我需要按计划运行一个cron作业,以从Web服务中提取数据。然后,我需要以某种方式将数据解析为数据库记录。这一切都需要通过我允许在cron作业中调用的单个php文件自动发生。

任何人都可以告诉我如何解决这个问题吗?我是否需要将XML响应保存到服务器上的实际文件中,然后将该文件转换为sql文件,然后以某种方式(再次自动)在SQL文件上运行导入?理想情况下,我不需要保存任何东西;我只能通过我的php文件中的数据库连接直接插入。如果我使用DOM解析器而不是XSLt文件遍历响应XML,那会有用吗?

我愿意接受任何其他选择;我以前从未这样做过,不知道如何去做,也无法找到任何关于直接将XML数据解析到数据库的文章或教程。

1 个答案:

答案 0 :(得分:0)

您需要解析xml数据,而不是使用xslt对其进行转换。

你可以使用xml_parse_into_struct把它变成一个php数组并在那里工作。

使用SimpleXml并使用xml树可能更容易。

考虑到你已经有了xslt转换,你也可以将sql写出来一个文件,然后直接将它传递给mysql。

exec("echo xml_sql.txt| mysql -uusername -ppassword database")

祝你好运!