Установка расширения DOM XML

Для того чтобы установить расширение DOM XML, нужно сделать следующее.

· В файле настроек PHP (php.ini) раскомментировать строку, касающуюся этого расширения ( extension=php_domxml.dll для Windows, либо extension=php_domxml.so для Linux-платформ).

· Скопировать файл расширения ( php_domxml.dll или php_domxml.so ) в папку, где находятся расширения ( extension_dir).

· Подключить расширение iconv так же, как в пунктах выше (иногда это расширение устанавливается автоматически вместе сdomxml ).

· Скопировать дополнительные библиотеки в системную папку system (Windows 98) или system32 (WindowsNT/2000/XP). В первую очередь это библиотеки libxml2 и iconv, затем libxslt, libexslt и zlib.

· Перезапустить сервер.

Следует проверить, правильно ли установлена переменная extension_dir в файле настройки php.ini. Если она не указывает на директорию, где находятся библиотеки расширений PHP, то ни одно из расширений подключить не удастся.

Чтобы проверить, установилось ли расширение, можно создать простейший скрипт, который будет выводить все настройки PHP-интерпретатора (это делает функция phpinfo() ). Другой вариант – попробовать использовать какую-нибудь функцию из данного расширения. Например, можно попробовать получить версию используемой библиотеки libxml с помощью функцииdomxml_version() . Но этот способ не очень хорош, поскольку расширение экспериментальное (это значит, что некоторые функции в каких-то определенных условиях могут и не работать), да и функции еще надо изучить, прежде чем их использовать.

<?

// выводит информацию о настройках PHP

phpinfo();

// отображает используемую версию

// библиотеки libxml

echo domxml_version();

?>

Пример 14.1. Проверка, установлено ли расширение DOM XML

Взаимодействие PHP и XML посредством DOM XML

Что происходит, если взаимодействие 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)

В дальнейшем, приводя примеры, мы будем использовать этот файл.

Нам необходимо научиться читать, добавлять, изменять и искать информацию, находящуюся в XML -файлах.