РНР 5 в подлиннике

Страница 445 из 554


Глава 40. Пути-дорожки: язык XPath

899

(Dafl^chapter.xml

Узел (контекст):/

Запрос.//7@*[2]

^xml-styleshheet type='4ext/css" hre(="chapterst/ie css'"b «Часть имя='ХМ L в РН Р5'>

«Глава имя='ОсновЬ1 XML>

«Р?Наряду с внедрением новой объектно-ориентированной модели, </Р> «Раздел имя='ХМ1_-расширения языка РН р><1— 1-й раздел главы —? «Р? Модуль xrni (здесь и далее «/р>

«Таблица имя='Слисок XML-расширений языка PHP"? «Яаблица? «Р>Для обеспечения возможности работы с XML-данными «УР> «/Раздела

«Раздел имя-Основные понятия XML'?

«Р?ЯзыкXMLявляется языком описания документов «/Р? «Рисунок имя='Иерархическая структураХМL-документа' src='xmlstruct.gif7> <Р>Основным понятием языка XML яаляется узел (Node) «/p> «Листинг имя='Пример описания программы передач на языке ХМ L src='prog xml'/> «Р>Надеюсь, читающие данные строки.. «/Р> «/Раэдел> «/Глава?

«Глава имя-DOM - объектная модель ХМ L-документа'?

«Р? В предыдущей главе мы рассмотрели метод генерации </р> «Раздел имя-Кодировки'?

«Р?Стандэрт DOM рассматривает три типа кодировки «UL?

«LI> Входная кодировка...</и> <LI>Внутренняя кодировка.. «/□? «и?Выходчая кодировка. «/U?

«/UL?

Входная и выходная кодировки </Р>

«Листинг имя-Функции перевода строк из кодировки KOI8-R в UTF-8 и обратно' src='unicode-koi8-r inc7> «Р/? «/Раздел? «/Глава? «/Часть?

Рис. 40.21. Использование шаблона * в оси атрибута

Файл:сЬар1ег.хт1

Узел(контекст) /

Запрос.//7*[@ИМЯ]

<?xml-styfeshiteet type="text/css" h(el="chapterstyle ess"?? «Часть w-ra="XML в PHP5'>

«Глава имя='Основы ХМ L>

«Р?Наряду с внедрением новой объектно-ориентированной модели. «/Р> «Раздел имя='ХМ1-расширения языка рнр*><|- t-Йраздел главы-? «р>модульхгп| (здесь и далее . «/Р?

«Таблица имя='Список ХМ L-расширений языка РН Р> «Яаблица> «Р?Для обеспечения возможности работы с XML-данными ..«/Р? «/Раздел?

«Раздел имя-Основные понятияXML>

«Р>ЯэыкXML является языком описания документов . «/Р?

«Рисунок имя- Иерархическая структура ХМ L-документа' src=^mlstruct gif7>

«Р?Основным понятием языка ХМ L является узел (Node) с/Р>

«Листинг имя-Пример описания программы передач на языке XML' sre-рюд хгп17> «Р?Надеюсь. читающие данные строки. .,.</Р> «/Раздел» «/Глава?

«Глава HMfl='DOM - объектная модель ХМ L-документа'?

«Р?В предыдущей главе мы рассмотрели метод генерации . </Р> «Раздел имя- Кодировки^

«Р?Стандарт DOM рассматривает три типа кодировки. «UL>

«и?Входная кодировка...</LI> «и>Внутренняя кодировка. .<Щ> «Ы?Выходная кодировка .«/LI?

«/UL?

Входная и выходная кодировки. «/Р?

«Листинг имя-Функции перевода строк из кодировки KOI8-R в UTF-8 и обратно1 src-unicode-koi3-r.inc7> «Р/? </Раздел> «/Глава> «/Часть?

Рис. 40.22. Использование оси attribute в предикате

900

Часть VI. XML в РНР 5

В запросе выделяются все элементы, имеющие атрибут имя.

И так же как для любого узла в предикате можно сравнивать значение атрибута со строкой (рис. 40.23).

©a^chapter.xml

Узел (контекст): /

запрос: //7*[@src='prog.xiri Г]

<^xm!-sty,eshheettype-'te*r/css'' href="chaptersty!8 css'"?> «Часть имя='ХМ!_в РНРБ'>

«Глава имя='Основы XML'>

«Р^аряду с внедрением новой объектно-ориентированной модели,. «/Р> «Раздел имя='ХМ L-расширения языка PHP'xi- 1-й раздел главы-> «Р>модуль xml (здесь и далее </Р>

«Таблица имя-'Список ХМ L-расширений языка рНр>. ^Яаблица> «Р>Для обеспечения возможности работы cXML-данными <!Р> «/Раздел>

«Раздел имя-Основные понятияXML'>

«Р>ЯзыкXML является языком описания документов ,«/р>

«Рисунок имя-'Иерархическая структура XML-документа' src='xmi struct gif'/>

«Р> Основным понятием языка ХМ L является узел (Node) «/P>

«Листинг имя='Пример описания программы передач на языке XML' src='prog хтГ/>

«Р>Надеюсь читающие данные строки, </Р>

«/Раздел^ «/Глава3

«Глава имя='ООМ - объектная модель XML-flOKyMeHTa'>

«Р>В предыдущей главе мы рассмотрели метод генерации «/Р> «Раздел имя='Кодировкн'>

«Р>Стандарт DOM рассматривает три типа кодировки. <UL>

«[.^Входная кодировка .«/LI> «□^■Внутренняя кодировка </LI> «и>Выходнэя кодировка «/LI>

«,'U L>

Входная и выходная кодировки «/p>

«Листинг имя='Функции перевода строк из кодировки KOI8-R в UTF-8 и обратно' src='uriiCode-koi8-r mc'/> «Р/> </Раздел> «;глава> </Часть>

Рис. 40.23. Использование в предикате значения атрибута

Ось parent

До настоящего момента мы имели дело с прямыми осями, которые имели направление от начала контекстного узла к концу документа. Рассмотрим сейчас реверсивные оси, определяющие порядок от контекстного элемента к началу документа.

Ось parent:: содержит родительский элемент контекстного узла (рис. 40.24).

Так как любой узел дерева (за исключением корневого) имеет единственного родителя типа Element, то указывать номер узла в предикате нет необходимости. Запросы

parent: : node () [1], parent ::*[ 1], parent:: node (), parent::* Идентичны И на практике

заменяются аббревиатурой "..".

В языке XPath, в отличие от стандарта DOM (как уже упоминалось), элемент, содержащий атрибут (свойство ownerEiement атрибута), является его родителем. Так что ось parent можно использовать для доступа к элементу атрибута (рис. 40.25).

Аналогичного результата можно добиться с помощью шаблона атрибута в префиксе:

//*/*[@src]




  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006