如何使用 PHP 提取 XML 数据数据?
Posted
技术标签:
【中文标题】如何使用 PHP 提取 XML 数据数据?【英文标题】:How to Extract XML Data data using PHP? 【发布时间】:2015-03-28 05:56:08 【问题描述】:我可以获取除 lat、lng 和地址之外的所有数据。
如何获取这些数据,我哪里出错了?
这是我的代码
<device_lastupdate>
<version>1.0</version>
<device>
<id>012980000234020</id>
<updated_at type="dateTime">2015-01-28T10:21:50+05:30</updated_at>
<location>
<lat type="float">12.828383</lat>
<lng type="float">79.695983</lng>
<address>Karukinil Amarthanval Street</address>
</location>
<odometer type="float">12341</odometer>
<speed type="float">0</speed>
<ignition>false</ignition>
</device>
这是我的 php 代码
$xml = simplexml_load_file("data.xml");
echo "<h2>".$xml->getName()."</h2><br />";
foreach($xml->children() as $device)
echo "ID : ".$device->id."<br />";
echo "Updated At : ".$device->updated_at." <br />";
echo "Latitude : ".$device->lat." <br />";
echo "Longitude : ".$device->lng." <br />";
echo "Address : ".$device->address." <br />";
echo "Odometer : ".$device->odometer." <br />";
echo "Speed: ".$device->speed." <br />";
echo "Ignition:".$device->ignition."<br />";
echo "<hr/>";
【问题讨论】:
我不认为您可以将 XML 单行代码分解为更易读的形式? 我可以获取 lat、lang 和 address 数据,你还想要什么。上面的说法是正确的。 @zan,这 3 个是我的问题,如何获取这些数据?你能发布你的代码吗? @zan ,抱歉之前我错过了 XML 代码中的一个标签,请现在再次检查并帮助解决 :-) 您在 xml 中只添加了一个节点。您可以在给定的 xml 中添加您的父节点和多个子节点吗?例如:.我们可以利用这个小函数来获取对象和属性并获取它的值。
<?php
$xml = simplexml_load_file("data.xml");
echo "<h2>".$xml->getName()."</h2><br />";
function xml_attribute($object, $attribute)
if(isset($object[$attribute]))
return (string) $object[$attribute];
foreach($xml->children() as $device)
var_dump($device->location);
$lng = xml_attribute($device->location->lng, 0);
$lat = xml_attribute($device->location->lat, 0);
$address = xml_attribute($device->location->address, 0);
echo "BOOK : ".$device->id."<br />";
echo "Author : ".$device->updated_at." <br />";
echo "Title : ".$lng." <br />";
echo "Genre : ".$lat." <br />";
echo "Price : ".$address." <br />";
echo "Publish Date : ".$device->odometer." <br />";
echo "Description : ".$device->speed." <br />";
echo "Ignition:".$device->ignition."<br />";
echo "<hr/>";
【讨论】:
非常感谢赞先生 :-) ,你是个天才 :-) ,现在完全好了 :-) 非常感谢 :-)以上是关于如何使用 PHP 提取 XML 数据数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PHP 从 XML“链接”标签中提取“href”属性?
如何使用 python 从 flickr xml 图像数据中提取图像地理数据?