PHP5 XML DOM парсер
Встроенный парсер DOM позволяет обрабатывать XML документы на PHP.
XML DOM Парсер
Парсер DOM - это синтаксический анализатор на основе дерева.
Посмотрите на следующую часть XML документа:
<?xml version="1.0" encoding="UTF-8"?>
<from>Татьяна</from>
DOM видит XML выше как древовидную структуру:
- Уровень 1: XML Документ
- Уровень 2: Корневой элемент: <from>
- Уровень 3: Текстовый элемент: "Татьяна"
Установка
Функции парсера DOM являются частью ядра PHP. Для использования этих функций не требуется установка.
XML Файл
XML файл ниже ("note.xml") будет использоваться в нашем примере:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Андрей</to>
<from>Татьяна</from>
<heading>Напоминание</heading>
<body>Не забудь меня на выходных.!</body>
</note>
Загрузка и вывод XML
Мы хотим инициализировать синтаксический анализатор XML, загрузить xml и вывести его:
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>
Вывод данных в приведенном выше кода:
Андрей Татьяна Напоминание Не забудь меня на выходных.!
Если выбрать "Вид источника" в окне браузера вы увидите следующий HTML код:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Андрей</to>
<from>Татьяна</from>
<heading>Напоминание</heading>
<body>Не забудь меня на выходных.!</body>
</note>
В приведенном выше примере создается DOMDocument-Object и загружается XML из "note.xml" в нее.
Затем функция saveXML()
помещает внутренний XML документ в строку, так что можно вывести ее.
Выполнение цикла через XML
Мы хотим инициализировать синтаксический анализатор XML,
загрузить XML и выполнить цикл по всем элементам <note>
:
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item) {
print $item->nodeName . " = " . $item->nodeValue . "<br>";
}
?>
Вывод данных в приведенном выше кода.
#text =
to = Андрей
#text =
from = Татьяна
#text =
heading = Напоминание
#text =
body = Не забудь меня на выходных.!
#text =
В приведенном выше примере вы видите, что между каждым элементом есть пустые текстовые узлы.
При создании XML он часто содержит пробелы между узлами. Формат XML Dom парсер рассматривает их как обычные элементы, они иногда вызывают проблемы.
Если вы хотите выучить больше о XML DOM, то пожалуйста посетите наш XML учебник.