Руководство по языку программирования PHP
 

PCRE
 

XML в PHP

Основы DOM

(Document Object Model)

Наиболее широко применяемы XML-расширением на сегодняшний день является DOM и simpleXML, оба из них были добавлены в 5 версии PHP. Кроме данных XML-расширений также применяются XML (XML-парсер) и DOMXML, однако эти технологии считаются устаревшими.

Работа с DOM осуществляется в объектно-ориентированном стиле. Для начала работы с ним нужно создать объект domDocument. На практике это выглядит примерно так:

$dom_xml = new DomDocument;

При создании нового объекта domDocument вызывается конструктор DOMDocument=>__construct, имеющий два необязательных аргумента, которые указывают на версию документа и его кодировку

__construct ([string version [, string encoding]])

После создания нового объекта domDocument необходимо загрузить данные. Осуществляется это при помощи методов DOMDocument->load() и DOMDocuтeпt->loadXML(), в первом случае данные загружаются из файла, а во втором из строки. На практике это выглядит примерно так:

//Загрузка данных из файла с явным указанием экземпляра класса:

$dom_xml = new DomDocument;
$dom_xml->load('file.xml');

//Загрузка данных из файла без явного указания экземпляра класса:

$dom_xml=DomDocument:: load('file.xml');

//Загрузка данных из строки с явным указанием экземпляра класса:

$dom_xml = new DomDocument;
$dom_xml->loadXML('<car><model>volvo</model></car>');

//Загрузка данных из строки без явного указания экземпляра класса:

$dom_xml = DomDocument::lоаdХМL('<car><model>volvo</model></car>');

Если загрузка данных прошла успешно, то будет возвращено TRUE, если нет, то FALSE

После того как данные загружены чаще всего осуществляется разбор их. Осуществить это можно при помощи метода DomDocument->getElementsByTagName(). Этот метод возвращает коллекцию объектов DOMNode.

Пример :

<?php
$dom_xml= new DomDocument();
$dom_xml->loadXML('<car><model>volvo</model><model>Lada</model></car>');
//записываем название модели в переменную

$mod=$dom_xml->getElementsByTagName("model");

//отображаем данные

Foreach ($mod as $element){
echo $element->nodeValue." ".$element->nodeName." ".'<br />';
}

?>

Результат:

volvo model
Lada model

Основные свойства объекта DOMNode

Свойство
Описание
nodeName
Возвращает имена узлов
nodeValue
Возвращает значения узлов
childNodes
Возвращает дочерние узлы для текущего узла
firstChild
Возвращает верхний (первый) дочерний узел
lastChild
Возвращает последний дочерний узел

Основные методы объекта DOMNode

Метод
Описание
removeChild()
Производит удаление дочернего документа
hasChildNodes()
Осуществляет проверку на дочерние узлы
appendChild()
Добавляет элемент
replaceChild() Замещает узел
hasAttributes() Проверка атрибутов

Примеры работы с DOM можно увидеть на следующих страницах:

Добавление нового элемента XML

Удаление элемента из XML

Сохранение данных в XML файл

 

Основы DOM
 

???????@Mail.ru