【问题标题】:How I can extract field to xml in Php? [closed]如何在 PHP 中将字段提取到 xml? [关闭]
【发布时间】:2018-05-13 08:10:38
【问题描述】:

我有一个包含更多子类别的 xml。 我想在 PHP 中提取类型为“adminkstrative_area_level_3”的“long_name” 我该怎么办? 这是我的 xml https://ibb.co/fY27bJ

试过了还是不行

   <? 
$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>";
?>

【问题讨论】:

  • 你能分享你的尝试并添加实际的xml而不是图像。
  • @Thefourthbird 我无法添加图片。我链接了它ibb.co/nzPmLd

标签: php xml xml-parsing


【解决方案1】:

您在$xml-&gt; name; 中缺少geoname

试试这样:

$xml = simplexml_load_string($string_data);
$citta = (string)$xml->geoname->name;
echo $citta;

Demo Php

如果你想遍历多个项目,你可以使用:

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;

【讨论】:

  • 谢谢,但在我的网站上我什么也没看到.. 为什么?
  • @user9711797 你确定这是正确的网址吗? "http://api.geonames.org/findNearbyPlaceName?lat=41.157&amp;lng=16.41548&amp;username=manu2424 你认同你的价值观吗?或者你可以做一个var_dump($citta);
  • url 是正确的,因为如果你看到这个 url 你可以看到 xml。我只想打印 $citta
  • 在浏览器中加载http://api.geonames.org/findNearbyPlaceName?lat=41.157&amp;lng=16.41548&amp;username=manu2424 后会看到什么?我得到&lt;status message="invalid username" value="10"/&gt; 试试simplexml_load_file
  • omg.. 现在我看到该服务无法使用.. 你知道其他服务可以给我一个 xml 链接,以便通过坐标获得城市名称吗?
猜你喜欢
  • 2019-02-24
  • 2012-12-08
  • 2011-11-17
  • 2022-01-23
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 2012-04-13
  • 1970-01-01
相关资源
最近更新 更多