Работа начинается с создания объекта DOMDocument:
$dom = new DomDocument ();
Рассмотрим чтение xml-документа с помощью DOM (на чтение документа лучше DOM не использовать, т.к. низкое быстродействие):
//Загрузка XML-документа $dom->load("catalog.xml"); //Доступ к корневому элементу $root = $dom->documentElement; //Получение типа элемента $type = $root->nodeType; //Получение всех потомков любого элемента $children = $root->childNodes; //Получение текстового содержимого echo $book->textContent; //Обращение к узлам с определенным именем $title = $dom->getElementsByTagName("title"); echo $title->item(0)->textContent;
- Загрузка xml-файла (строка №2). В итоге в памяти повиснет полное дерево документа.
- Доступ к корневому элементу. Используем спец. свойство — documentElement, только оно используется для выбора корневого элемента. См.строка №4.
- Получаем тип документа с помощью свойства nodeType. См. строка №6.
- Получение всех детей выбранного элемента. См. строка №8. К нам придет список детей в виде DOMNodeList, через echo их не посмотреть.
- Получаем текстовые узлы. Используем свойство textContent и обращаемся к нужному элементу. Если обратимся к корневому элементу root, то в итоге получим все текстовые узлы, неважно на каком уровне они находятся. См. строку №10.
- Обращение к узлам с определенным именем. Строки №12,13.
Метки: DOM, DOM парсер