Работа с XML-данными в php

Если на сервере стоит версия php >= 5.0 (а сложно представить другое;)), то удобнее всего пользоваться классом SimpleXML.
Здесь я опишу работу с ним.

Создание объекта

2 основных способа — через конструктор и через factory-функцию simplexml_load_string.
Второй способ лучше тем, что при ошибке создания объекта вернёт false.
Правда, при этом будет выдавать E_WARNING, что не очень приятно.
Но есть способ побороться с этим — использовать функцию http://www.php.net/manual/en/function.libxml-use-internal-errors.php, которая запрещает вывод ошибок при парсинге XML-данных и позволяет приложению управляться с ними самому.
Соответственно, создание объекта SimpleXML можно реализовать так:

Дальнейшая работа с данными

Далее нужно обработать полученные данные.
Здесь всё достаточно просто: каждый из XML-нодов представляет теперь объект класса SimpleXML.
Т.е. к любому узлу можно обратиться примерно так:

При этом если используются спецсимволы в «имени свойства», то можно сделать так:

Для нескольких дочерних элементов можно использовать циклы

При этом, правда, есть нюансы — к примеру, неправильно отрабатывает count($xml->movie).
Для нормальной работы необходимо использовать метод children (странное название):

LEAVE A COMMENT