Основные положения DOM:
- Интерфейс, позволяющий программам управлять содержимым документов XML, а также изменять их структуру.
- Представляет XML-документ в виде дерева узлов.
- Существует спецификация DOM (W3C).
В начале мы создаем объект экземпляр класса DOMDocument. В конструктор DOMDocumenta можно передать 2 параметра: версию xml и кодировку (нужны только при создании нового документа):
$dom = new DOMDocument(); $dom = new DOMDocument("1.0","utf-8");
DOM — это самый мощный из всех инструментов. С его помощью можно создавать, читать, изменять документы. Но он и самый ресурсоемкий. Когда мы отдаем на обработку DOM на xml-файл, тот зачитывает его весь целиком, строит в памяти дерево.
С точки зрения DOM весь документ — это объект. Поэтому все, что внутри xml-документа — это узлы.
Узлы XML документа
Допустип, есть xml-документ:
<catalog> <book> <author>Хьюз</author> <title>PHP</title> </book> <book> <author>Григин</author> <title>Справочник</title> </book> </catalog>
Тогда DOM представит его в виде такого дерева:

DOM загрузил все дерево сразу. И мы можем гулять по дереву вверх, вниз, влево, вправо. Т.к. мы передвигаемся, как правило, вслепую. Узлов много. Они делятся по типам.
Типы узлов документа
У каждого узла есть свой тип и свой код.

Все эти узлы состоят в родственных между собой отношениях.
Связи между узлами
Допустим, у нас есть код:
<book> <title>PHP</title> <author>Zeev Suraski</author> </book>
Этот кусок кода можно представить в виде дерева:

Мы видим связи между родителем-ребенком. Как правило, нам может понадобиться либо первый ребенок, либо последний. Для этого есть свойства: first child, last child.