代码之家  ›  专栏  ›  技术社区  ›  user9711797

如何在Php中将字段提取为xml?[已关闭]

  •  -1
  • user9711797  · 技术社区  · 6 年前

    我有一个包含更多子类别的xml。 我想在Php中提取long\u名称,其中类型为Administrative\u area\u level\u 3 我该怎么办? 这是我的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>";
    ?>
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   The fourth bird    6 年前

    你失踪了 geoname 在里面 $xml-> name;

    可以这样尝试:

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