[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: SimpleXML и атрибуты
yyk
Добрый день, уважаемые знатоки!
Начал разбираться с SimpleXML и впал в ступор на первой же простой задаче.
Имеется простейший XML документ:
<?xml version="1.0" encoding="UTF-8"?>
<class>
<class_name>
dairy_record</class_name>
<field
position="1" type="text">text</field>
<field
position="2" type="int">category</field>
</class>

Задача состоит в том, чтобы вывести его структуру не используя обращения к полученным узлам по типу $xml->field (это упражнение).
Я разбираю его с помощью функции simplexml_load_file, а затем вывожу на экран с помощью простейшего обхода foreach. Вот этот код:

$xml=simplexml_load_file(base_url().'/xml/dairy_record');
foreach ($xml as $key=>$value) {
echo $key." ";
$attr=$xml->$key->attributes();
if ($attr) {
foreach ($attr as $a=>$b) {
echo $a.'='.$b." ";
}
}
;
echo $value;
echo'<br/>';
}

Но в итоге его работы я получаю
Цитата
class_name dairy_record
field position=1 type=text text
field position=1 type=text category

то есть для второго узла field выдаются атрибуты первого, хотя значение узла выдается верно.
Видимо я не до конца понимаю структуру класса SimpleXMLElement. Подскажите, пожалуйста, где загвоздка?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.