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: Текстовий елемент: "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();
?>
Виведення коду вище буде:
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 і завантажується 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 Підручник на нашому сайті W3Schools українською.