Как распарсить атрибуты из xml?

176
27 апреля 2018, 13:01

Имеется xml файл. Фрагмент из него:

<offer id="104304" available="true">
<productId>72187</productId>
<price>855</price>
<picture>image</picture>
<vendorCode>10679</vendorCode>
<name>Коробки МДФ для складной двери  Дуб седан</name>
<params>
<param name="Цвет">Дуб седан</param>
<param name="Остекление">Для двупольной двери</param>
<param name="Тип">Для двупольной двери</param>
<param name="Размер">70*24*2037</param>
</params>
</offer>

Пытаюсь построить ассоциативный массив для params в виде Цвет=>Дуб седан Упростив, делаю так:

$xml = simplexml_load_file($xmlfile, 'SimpleXMLElement', LIBXML_NOCDATA);
$item = $xml->offers->offer;
foreach($item as $ii) {
    foreach($ii->params as $iii){
        $attr = $iii->attributes();
        $name = (String)$attr["name"];
        echo $name;
    }
}

Но так не получается вывести на экран.

Answer 1

Простая невнимательность:

$xml = simplexml_load_file($xmlfile, 'SimpleXMLElement', LIBXML_NOCDATA);
$item = $xml->offers->offer;
foreach($item as $ii){  
    foreach($ii->params as $iii){
        $attr = $iii->param->attributes();
        $name = (String)$attr["name"];
        echo $name;
    }
}
Answer 2
foreach($item as $ii){  
    foreach($ii->params as $iii){
        foreach($iii->attributes() as $name => $val) {
           echo $name;
           echo $val;
        }
    }
}
READ ALSO
Двойной запрос Mysql

Двойной запрос Mysql

Есть в одной БД 2 таблицы sirovyna (c полями id,naim,kol,data) и zayavki (с полями id,kol,data)Подскажите пожалуйста каким запросом можно вывести к таблице zayavki...

157
Слетают стили при категории url

Слетают стили при категории url

Смотреть фотоРоутер кастыль

107
Регулярное выражение на php для цикла FOR

Регулярное выражение на php для цикла FOR

я новичок в регулярных выражениях,в универе дали задание: **Написать регулярное выражение для проверки правильности ввода строки, являющейся...

114