-
Ваша корзина пуста!
XML
XML — текстовый формат, предназначенный для хранения структурированных данных (взамен существующих файловбаз данных), для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML), иногда называемых словарями. XML является упрощённым подмножеством языка SGML.
XML это удобная штука хранить файлы в читаемом виде.
Например простой XML файл может быть таким
На данном файле будет показана работа с XPath.
Как видно из примера XML удобен тем, что он легко читаем, структурирован. В данном формате удобно хранить данные, более того, существует множество библиотек по работе с данным типом файла.
Любой элемент имеет свой путь, например путь root-data-row[0] будет указывать на ветку Василия.
Но когда программист начинает использовать данный файл у него возникает проблем с манипуляцией файла. Например необходимо выбрать всех людей у которых возраст < 20.
Что делать?
Решением данной проблемы является XPath.
XPath это своебразный язык, ябы так сказал, язык запросов к документу XML который возвращает итератор на ветки удовлетворяющих условия.
Итак, есть документ.
Напишем РНР код для этого документа. В данном примере используются фукнции SimpleXML для работы.
Есть код:
Результат будет следующий:
Как видно из результата доступ можно делать как: $xml->data->row[0]->name == Valilii.
Теперь собственно XPath.
XPath позволяет использовать условия и свои встроенные функции для выборки веток.
Например / (слеш) — указывает на иерархию веток, например /data,
Основные моменты при использовании:
/ — корневой узел
// — множество узлов удовлетворяющих след условие (детальнее на вики)
* — любые символы
@ — аттрибут
[] — аналог () в sql, задает условия
and, or — И, ИЛИ.
Более подробно написано ru.wikipedia.org/wiki/XPath
Сделаем выборку всех элементов с помощью XPath.
Давайте сделаем выборку, где age>18
Результат:
Сделаем выборку у всех у которых аттрибут company='ibm'
Результат:
Следует обратить внимание, что атрибут @company является частью name, по этому просто написать row[@company=..] — нельзя.
Сделаем выборку людей, у которых возраст больше 18 и работает в IBM
Результат:
Можно увидеть что комбинировать очень просто.
Следующий пример покажет как можно использовать встроенные функции, например
last() — получим последнего человека списка.
Результат:
А теперь найдем людей которые НЕ работают в IBM:
Результат:
Все очень просто и удобно!
Xpath — хороший инструмент для работы с документом XML. Базовые функции выполняет.
Для более сложных есть XQuery, но речь сейчас не об этом.
XML+XPath достойная замена в тех местах, где неудобно использовать БД по каким либо причинам.
Спасибо.
Продолжение следует.