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