如何在Php中将字段提取为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";

我有一个包含更多子类别的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";
$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的服务吗通过坐标有城市名称的链接?