PHP XML DOM Parser
Встроенный анализатор DOM позволяет обрабатывать XML-документы в PHP.
Синтаксический анализатор XML DOM
Синтаксический анализатор DOM — это синтаксический анализатор на основе дерева.
Посмотрите на следующую фракцию XML-документа:
<?xml version="1.0" encoding="UTF-8"?>
<from>Jani</from>
DOM видит XML выше как древовидную структуру:
- Level 1: XML Document
- Level 2: Root element: <from>
- Level 3: Text element: "Jani"
Установки
Функции синтаксического анализатора 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();
?>
Выводимый выше код будет:
Туве Джани напоминание не забывайте меня в эти выходные!
Если в окне браузера выбрать "Просмотр источника", появится следующий 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 и загружается XML из "Note.XML" в него.
Затем функция савексмл () помещает внутренний 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.