Парсер PHP XML DOM
Встроенный парсер DOM позволяет обрабатывать XML-документы в PHP.
Парсер XML DOM
Парсер DOM — это парсер на основе дерева.
Посмотрите на следующую часть XML-документа:
<?xml version="1.0" encoding="UTF-8"?>
<from>Jani</from>
DOM видит приведенный выше XML как древовидную структуру:
- Уровень 1: XML-документ
- Уровень 2: корневой элемент: <from>
- Уровень 3: Текстовый элемент: «Яни»
Установка
Функции парсера DOM являются частью ядра PHP. Для использования этих функций установка не требуется.
XML-файл
Приведенный ниже файл XML ("note.xml") будет использоваться в нашем примере:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Загрузка и вывод XML
Мы хотим инициализировать синтаксический анализатор XML, загрузить xml и вывести его:
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>
Вывод кода выше будет:
Tove Jani Reminder Don't forget me this weekend!
Если вы выберете «Просмотр источника» в окне браузера, вы увидите следующий HTML:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</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 = Tove
#text =
from = Jani
#text =
heading = Reminder
#text =
body = Don't forget me this weekend!
#text =
В приведенном выше примере вы видите, что между каждым элементом есть пустые текстовые узлы.
Когда генерируется XML, он часто содержит пробелы между узлами. Синтаксический анализатор XML DOM обрабатывает их как обычные элементы, и если вы о них не знаете, они иногда вызывают проблемы.
Если вы хотите узнать больше о XML DOM, посетите наш учебник по XML .