ЛУЧШИЙ САЙТ ДЛЯ РАЗРАБОТЧИКОВ
×

PHP учебник

PHP HOME PHP Intro PHP Install PHP Syntax PHP Variables PHP Echo / Print PHP Data Types PHP Strings PHP Constants PHP Operators PHP If...Else...Elseif PHP Switch PHP While Loops PHP For Loops PHP Functions PHP Arrays PHP Sorting Arrays PHP Superglobals

PHP Forms

PHP Form Handling PHP Form Validation PHP Form Required PHP Form URL/E-mail PHP Form Complete

PHP Advanced

PHP Arrays Multi PHP Date and Time PHP Include PHP File Handling PHP File Open/Read PHP File Create/Write PHP File Upload PHP Cookies PHP Sessions PHP Filters PHP Filters Advanced PHP Error Handling PHP Exception

MySQL Database

MySQL Database MySQL Connect MySQL Create DB MySQL Create Table MySQL Insert Data MySQL Get Last ID MySQL Insert Multiple MySQL Prepared MySQL Select Data MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP - XML

PHP XML Parsers PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Intro AJAX PHP AJAX Database AJAX XML AJAX Live Search AJAX RSS Reader AJAX Poll

PHP Examples


PHP Reference

PHP Overview PHP Array PHP Calendar PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones


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.