I.Swen I.Swen - 1 year ago 73
PHP Question

XML in to a PHP does not display an array

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

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

Answer Source

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;
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download