DOM XML PHP
- Предыдущая страница XML Expat Parser
- Следующая страница SimpleXML XML
Внутренний парсер DOM позволяет обрабатывать документы XML в PHP.
Что такое DOM?
W3C DOM предоставляет стандартный набор объектов для документов HTML и XML, а также стандартные интерфейсы для доступа и работы с этими документами.
W3C DOM делится на不同的 части (Core, XML и HTML) и различные уровни (DOM Level 1/2/3):
- Core DOM - определяет стандартный набор объектов для любых структурированных документов
- XML DOM - определяет стандартный набор объектов для документов XML
- HTML DOM - определяет стандартный набор объектов для документов HTML
Если вы хотите узнать больше о XML DOM, пожалуйста, посетите наш Учебник по XML DOM.
Парсер XML
Чтобы читать и обновлять - создавать и обрабатывать - документ XML, вам необходим парсер XML.
Есть два основных типа парсеров XML:
- Парсер на основе дерева:such a parser converts the XML document into a tree structure. It analyzes the entire document and provides an API to access elements in the tree, such as the Document Object Model (DOM).
- Парсер на основе событий:represent the XML document as a series of events. When a specific event occurs, the parser calls a function to handle it.
Парсер DOM является древовидным парсером.
Просмотрите следующий фрагмент документа XML:
<?xml version="1.0" encoding="ISO-8859-1"?> <from>Джон</from>
XML DOM представляет XML как древовидную структуру:
- Уровень 1: документ XML
- Уровень 2: корневой элемент: <from>
- Уровень 3: текстовые элементы: "Джон"
Установка
Функции DOM XML являются частью ядра PHP. Эти функции могут быть использованы без установки.
Файл XML
В нашем примере мы будем использовать следующий файл XML:
<?xml version="1.0" encoding="ISO-8859-1"?> <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="ISO-8859-1"?> <note> <to>Джордж</to> <from>Джон</from> <heading>Памятка</heading> <body>Не забудьте встречу!</body> </note>
В примере выше был создан объект DOMDocument, и 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 = George #text = from = John #text = heading = Памятка #text = body = Не забудьте встречу! #text =
В примере, который вы видите, между каждым элементом есть пустые текстовые узлы.
Когда XML генерируется, он обычно содержит пробельные символы между узлами. XML DOM парсер рассматривает их как обычные элементы, и если вы не обратите на них внимание, иногда это может вызвать проблемы.
Если вы хотите узнать больше о XML DOM, пожалуйста, посетите наш Учебник по XML DOM.
- Предыдущая страница XML Expat Parser
- Следующая страница SimpleXML XML