Встроенный парсер DOM позволяет обрабатывать XML-документы на PHP.
W3C DOM предоставляет стандартный набор объектов для документов HTML и XML, а также стандартный интерфейс для доступа к этим документам и управления ими. W3C DOM разделен на различные части (ядро, XML и HTML) и разные уровни (уровни DOM 1/2/3): * Core DOM — определяет стандартный набор объектов для любого структурированного документа * XML DOM — для XML-документов Определение стандартный набор объектов* HTML DOM — определение стандартного набора объектов для документов HTML. Чтобы узнать больше о XML DOM, посетите наше руководство по XML DOM.
Чтобы читать и обновлять – создавать и обрабатывать – XML-документ, вам нужен синтаксический анализатор XML.
Существует два основных типа парсеров XML:
Древовидный анализатор: этот анализатор преобразует XML-документы в древовидную структуру. Он анализирует весь документ и обеспечивает доступ к элементам дерева, таким как объектная модель документа (DOM).
Анализатор на основе событий: рассматривает XML-документ как серию событий. Когда происходит определенное событие, синтаксический анализатор вызывает функцию для его обработки.
Анализатор DOM представляет собой анализатор на основе дерева.
Пожалуйста, посмотрите на следующий фрагмент XML-документа:
<?xml version="1.0"coding="ISO-8859-1"?><from>Яни</from>
XML DOM рассматривает приведенный выше XML как древовидную структуру:
Уровень 1: XML-документ
Уровень 2: Корневой элемент: <from>
Уровень 3: Текстовый элемент: «Яни».
Функция анализатора DOM XML является неотъемлемой частью ядра PHP. Для использования этих функций установка не требуется.
В нашем примере будет использоваться следующий XML-файл:
<?xml version="1.0"coding="ISO-8859-1"?><note><to>Тове</to><from>Яни</from><heading>Напоминание</heading><body>Дон не забудь меня на этих выходных!</body></note>
Нам нужно инициализировать парсер XML, загрузить XML и вывести его:
<?php$xmlDoc = новый DOMDocument();$xmlDoc->load("note.xml");print $xmlDoc->saveXML();?>
Приведенный выше код выведет:
ToveJaniReminder Не забудь меня на этих выходных!
Если вы просмотрите исходный код в окне браузера, вы увидите следующий HTML-код:
<?xml version="1.0"coding="ISO-8859-1"?><note><to>Тове</to><from>Яни</from><heading>Напоминание</heading><body>Дон не забудь меня на этих выходных!</body></note>
В приведенном выше примере создается объект DOMDocument и загружается XML из «note.xml» в этот объект документа.
Функция saveXML() помещает внутренний XML-документ в строку, чтобы мы могли его вывести.
Мы хотим инициализировать анализатор XML, загрузить XML и выполнить итерацию по всем элементам элемента <note>:
<?php$xmlDoc = new DOMDocument();$xmlDoc->load("note.xml");$x = $xmlDoc->documentElement;foreach ($x->childNodes AS $item) { print $item-> имя_узла . " = " . $item->значение узла "<br>";
Приведенный выше код выведет:
#text = to = Туве#text = from = Яни#text = заголовок = Напоминание#text = body = Не забудь меня на этих выходных!#text =
В приведенном выше примере вы видите, что между каждым элементом есть пустые текстовые узлы.
Когда XML генерируется, он обычно содержит пробелы между узлами. Анализатор XML DOM обрабатывает их как обычные элементы, что иногда может вызвать проблемы, если вы не обращаете на них внимания.
Чтобы узнать больше о XML DOM, посетите наше руководство по XML DOM.