Начал разбираться с 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/>';
}
Но в итоге его работы я получаю