如何在Php中将字段提取为xml?
我有一个包含更多子类别的xml。 我想在Php中提取“long\u name”,其中类型为“administrative\u area\u level\u 3” 我该怎么办? 这是我的xml 我试过了,但没有成功如何在Php中将字段提取为xml?,php,xml,xml-parsing,Php,Xml,Xml Parsing,我有一个包含更多子类别的xml。 我想在Php中提取“long\u name”,其中类型为“administrative\u area\u level\u 3” 我该怎么办? 这是我的xml 我试过了,但没有成功 <? $string_data = "https://maps.googleapis.com/maps/api/geocode/xml?latlng=41.51,15.16&key=AIzaSyClG_vc2nkQCzXqvDzW1maPrUWLyADI7xI";
<?
$string_data = "https://maps.googleapis.com/maps/api/geocode/xml?latlng=41.51,15.16&key=AIzaSyClG_vc2nkQCzXqvDzW1maPrUWLyADI7xI";
$xml = simplexml_load_string($string_data);
$citta = (string) $xml->result[0]->address_component[3]->long_name;
echo "<p>".$citta."</p>";
?>
result[0]->address\u component[3]->long\u name;
回声“”$citta。””;
?>
您在$xml->name中缺少geoname
代码>
试着这样做:
$xml = simplexml_load_string($string_data);
$citta = (string)$xml->geoname->name;
echo $citta;
如果要循环浏览多个项目,可以使用:
foreach ($xml->geoname as $item) {
echo $item->name;
}
更新:
对于更新的零件,您可以使用相同的技术:
$xml = simplexml_load_file("https://maps.googleapis.com/maps/api/geocode/xml?latlng=41.51,15.16&key=AIzaSyClG_vc2nkQCzXqvDzW1maPrUWLyADI7xI");
foreach ($xml->result as $item) {
if ((string)$item->type === "administrative_area_level_3") {
echo $item->address_component->long_name;
}
}
或通过索引[1]
:
echo $xml->result[1]->address_component->long_name;
你能分享你尝试过的内容并添加实际的xml而不是图像吗?@Thefourthbird我不能添加图像。我链接了它。谢谢,但在我的网站上我什么也没看到。。为什么?@user9711797您确定这是正确的url吗<代码>”http://api.geonames.org/findNearbyPlaceName?lat=41.157&lng=16.41548&username=manu2424
您是否回显您的价值?或者您是否可以执行var\u转储($citta);
url是正确的,因为如果您看到此url,您可以看到xml。我只想打印$citta您看到了什么,然后加载http://api.geonames.org/findNearbyPlaceName?lat=41.157&lng=16.41548&username=manu2424
在你的浏览器中?我得到了
试试omg..现在我发现该服务不可用..你知道其他给我xm的服务吗通过坐标有城市名称的链接?