Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: X технологии > Не могу выдрать атрибуты из XML


Автор: Serious2008 24.9.2012, 11:09
Пишу парсер для XML
Вот использую такой код для отображения атрибутов, хочу как бы выдрать все атрибуты. Но он мне выдаёт только вот что.
Код

print_r($value);

foreach($value->attributes() as $keys=>$values);
{

echo ($keys.' - '.$values.'<br>');
}



Код

SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [Код] => 1
            [Наименование] => Продавец
            [Публиковать] => true
        )

)
Публиковать - true
SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [Код] => 2
            [Наименование] => Категории
            [Публиковать] => true
        )

)
Публиковать - true

вот пример этого xml
Код

- <Каталог>
    - <Параметры>
           <Параметр Код="1" Наименование="Продавец" Публиковать="true" /> 
           <Параметр Код="2" Наименование="Категории" Публиковать="true" /> 
           <Параметр Код="6" Наименование="Цена" Публиковать="true" /> 
           <Параметр Код="81" Наименование="Описание" Публиковать="true" /> 
    - </Параметры>
- </Каталог>

Ну и т.д., т.е. атрибут Публиковать он удачно вытаскивает, а мне не хватает ещё двух параметров это Код и Наименование, для полного счастья. Подскажите где ошибка в коде у меня? Возможно я не в тот раздел пишу, если да, то поправьте.

Автор: Всемогущий 24.9.2012, 16:20
Код

<?php
$string = <<<XML
<Каталог>
 <Параметры>
           <Параметр Код="1" Наименование="Продавец" Публиковать="true" />
           <Параметр Код="2" Наименование="Категории" Публиковать="true" />
           <Параметр Код="6" Наименование="Цена" Публиковать="true" />
           <Параметр Код="81" Наименование="Описание" Публиковать="true" />
 </Параметры>
</Каталог>

XML;

$xml = simplexml_load_string($string);




foreach($xml->{Параметры}->{Параметр} as $node) {
        echo '<br>'.PHP_EOL.'!!!!!!!!!'.'<br>'.PHP_EOL;
       foreach($node->attributes() as $a => $b) {
    echo $a,'="',$b,"\"\n";
}

}
?>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)