Аргерих Л. О языке РНР. Часть 5. Страница 8


С помощью XML модно описать структурированный текст любого вида, в том числе другие языки разметки. Существует свыше десятка языков раз­метки, основанных на XML. С их помощью описывается все - от графики до математических уравнений. Чтобы не выйти в этой главе за рамки допусти­мого, мы рассмотрим только те средства XML, которые реализованы в РНР и применяются для чтения и записи файлов XML. Конкретно мы рассмотрим базовый файл XML, способ спецификации частей файла XML (XPath) и упро­щенный формат XML под названием SML.

Подробности различных стандартов XML можно получить на сайте World Wide Web Consortium (W3C). W3C - это организация, управляющая различ­ными стандартами Интернета (например, XML). Она отвечает за выход и поддержку семейства спецификаций и рекомендаций XML. Дополнитель­ные сведения можно найти по адресу http://www.w3.org/"> http://www.w3.org/.

В данной главе будут

♦ Основы XML, SML и XPath

♦ XML как хранилище данных и программное взаимодействие с ним

♦ API PHP (SAX, DOM и PRAX), позволяющие работать с документом XML

♦ Примеры использования API

♦ Поддержка Sablotron XSL в РНР

На момент написания этой главы поддержка XML в РНР все еще считалась экспериментальной. Эта особенность проявляется, когда поведение кода становится неожиданным и непоследовательным.

ОбзорXML

Как и документ HTML, документ XML содержит теги и данные. В отличие от HTML, имена тегов XML могут быть почти произвольными. Например, <В>, <ВЬ> и <4f5gt6g> будут допустимыми тегами XML (открывающими), хотя из этого списка в HTML допустим только тег <В>. Как и документ HTML, доку­мент XML может содержать данные между открывающим и закрывающим тегами, например <B>text</B> и <Bb>some text</Bb>. В XML сочетание откры­вающего тега, данных и закрывающего тега называется элементом.

На этом рисунке показаны различные части элемента XML (рис.

Элемент, состоящий из одного открывающего и одного закрывающего тега, нескольких необязательных атрибутов, необязательного содержимого из символьных данных и вложенных элементов (дочерних узлов), рассматри­вается как узел (node). В элементе присутствуют открывающий и закрыва­ющий теги, например ,<firstx/first> или <lastx/last>. Имя тега должно быть уникальным и оно чувствительно к регистру. Элемент может быть кон­тейнером для других, элементов или содержать символьные данные. Атри­бут - это часть элемента, например <first id="4">, где id="4" является атри­бутом, a first — именем элемента. Атрибут похож на массив тем, что у обоих есть пара ключ-значение.