Что происходит, если взаимодействие PHP и XML осуществляется с помощью объектной модели стандарта DOM? Модуль DOM XML определяет в PHP несколько классов, таких как DomNode, DomDocument, DomElement, DomText и DomAttribute, большинство из которых идут из ядра стандарта DOM. Почти для всех классов (в частности, для перечисленных выше) класс DomNode является родительским, поэтому его свойства и методы наследуются всеми остальными классами.
Если рассмотреть произвольный XML-документ, то классу DomDocument будет соответствовать сам этот документ, классу DomElement – каждый XML-тег, классу DomAttribute – атрибуты тегов, а классу DomText – содержание XML-элементов. В то же время классу DomNode будет соответствовать каждый из перечисленных элементов XML-документа.
Рассмотрим коллекцию, содержащую описания персон. Если каждую из них мы описываем с помощью таких характеристик, как фамилия, имя, дата рождения и электронный адрес, то структура коллекции «Личности», где хранится информация обо всех известных нам персонах, может быть представлена следующим образом.
<?xml version="1.0"?> <collection> <person id="10"> <name> <first>Nick</first> <last>Petrov</last> </name> <birth> <day>23</day> <month>12</month> <year>89</year> </birth> <email> nick@ngs.ru </email> </person> <person id="20"> <name> <first>Bob</first> <last>Ivanov</last> </name> <birth> <day>03</day> <month>05</month> <year>90</year> </birth> <email> bob@ngs.ru </email> </person> </collection>
Пример 14.2. Коллекция «Личности» в виде XML-файла (persons.xml) (html, txt)
В дальнейшем, приводя примеры, мы будем использовать этот файл.
Нам необходимо научиться читать, добавлять, изменять и искать информацию, находящуюся в XML-файлах.