PHP::SimpleXML. Часть 2. XML дерево
В заключительной части цикла статей посвященного работе с SimpleXML, будет рассмотрена довольно распространенная задача: построение XML дерева.
Требования
- Отображение в виде дерева содержимого любого XMLфайла с правильной структурой;
- Возможность сворачивать и разворачивать ветви;
- Атрибуты элементы выводятся в строку рядом с ним;
- Текст элемента так же пишется рядом с названием элемента, но в скобках;
Для того, что бы лучше понять, что же все-таки мы хотим сделать, можно посмотреть на уже готовый пример: http://st-programming.ru/simple_xml/index.php

Как видно, здесь в качестве примера используется все тот же файл с рецептом.
Дерево представляет собой обычный вложенный список. Для добавления функциональности (сворачивание и разворачивание) и нормального внешнего вида используется плагин для (скачать)...
xml, алгоритмы, php, jqueryPHP::SimpleXML. Часть 1. Введение в SimpleXML
В данном цикле статей будет рассмотрено SimpleXML – расширение PHP для обработки XML. Для начала разберем основные методы, потом напишем простенький скрипт – построение дерева на основе XML файла.
Для наглядности, в качестве примера будем использовать XML, описывающий простой кулинарный рецепт, взятый с википедии :)
- <?xml version="1.0" encoding="UTF-8"?>
- <recipe name="хлеб" preptime="5" cooktime="180">
- <title>Простой хлеб</title>
- <ingredient amount="3" unit="стакан">Мука</ingredient>
- <ingredient amount="0.25" unit="грамм">Дрожжи</ingredient>
- <ingredient amount="1.5" unit="стакан">Тёплая вода</ingredient>
- <ingredient amount="1" unit="чайная ложка">Соль</ingredient>
- <instructions>
- <step>Смешать все ингредиенты и тщательно замесить.</step>
- <step>Закрыть тканью и оставить на один час в тёплом помещении.</step>
- <step>Замесить ещё раз, положить на противень и поставить в духовку.</step>
- </instructions>
- </recipe>
Загрузка XML
Прежде чем начать обрабатывать данные, их нужно сначала получить :). Для того что бы проанализировать XML документ и сохранить его в переменной достаточно использовать функцию simplexml_load_file(). Она принимает имя файла, и возвращает объект типа SimpleXMLElement (либо наследуемого от него). И с этим объектом уже можно будет работать.
Кроме того, существует еще и функция simplexml_load_string, которая берет XML не из файла, а из строки.
Следует отметить, что получаемый в итоге объект – это и есть корневая ветвь документа...
xml, php