dousi2553 2016-11-13 12:15 采纳率: 0%
浏览 51
已采纳

PHP中的XML不显示数组

I need to display an array PHP of data from file XML (https://pogoda.yandex.ru/static/cities.xml). I want in array all "id". Help me find the error. Thanks

<?php
 $data_file_city="https://pogoda.yandex.ru/static/cities.xml"; 
 $xml_city = simplexml_load_file($data_file_city); 

  foreach($xml_city->country as $key=>$value){
    foreach ($value->city as $key1=>$value1) {
      $id = array("$value1[country]");
        echo $id;
    }
  }
  • 写回答

1条回答 默认 最新

  • doucan8521 2016-11-13 12:27
    关注

    Every $value1 in your foreach is a SimpleXMLElement Object with attributes.

    To get attributes of such object use attributes function:

    $ids = array();
    $countries = array();
    foreach($xml_city->country as $key=>$value){
        foreach ($value->city as $key1=>$value1) { 
            $attrs = $value1->attributes();
    
            // Use `strval` function to cast attribute value to `string` type
    
            // get `id` attribute 
            $id = strval($attrs['id']);
    
            // get `country` attribute
            $country = strval($attrs['country']);
    
            echo $id, '<br />', $country;
    
            // add to array
            $ids[] = $id;
            $countries[] = $country;
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?