Если simplexml «не парсит» атрибуты…

.. то скорее всего, вы ошибаетесь. Рассмотрим следующий пример XML.

В документе example.xml содержится запись о валюте и информация о категории товара. Обе записи содержат аттрибуты.

Выполним чтение и вывод информации в консоль.

Получим вот такую информацию:

Здесь вы можете удивиться — атрибуты для первой записи currency вы видите, а вот вторая запись category — выведена без атрибутов.

Почему не выведены атрибуты?

Причина в том, что атрибуты выводятся в случае, если нет inline значения тега (как в случае с currency). В случае с категорией тег содержит inline текст — «Собаки».

Как получить значения атрибутов XML в случае заданного inline значения?

Так как мы имеем дело с SimpleXMLElement объектом, то атрибуты узла получаются с помощью метода attributes().

Получаем массив свойств-атрибутов XML узла:

Написать комментарий

Мало букафф? Читайте есчо !

Вариант XML карты сайта для Drupal 7

Ноябрь 8, 2016 г.

Сначала написал вариант для Drupal 6, но в силу актуальности семерки, предлагаю вариант кода для 7й версии. Описание вы найдете в прошлой статье, здесь обновлена только работа с базой данных. Привожу код класса и пример его вызова. Код класса: ...

Читать

XML парсер в массив на PHP

Сентябрь 19, 2015 г.

По идее столько всего понаписано, чего огород то городить? От случая к случаю, конечно, пользуюсь библиотеками PHP. Но вместе с этим, есть объективные ...

Читать

 

Комментарии к «Если simplexml «не парсит» атрибуты…»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Один комментарий в “Если simplexml «не парсит» атрибуты…”

  1. Sergey:

    Спасибо за пояснение про наличие inline. Кроме вас — нигде не нашел