![]() |
![]() |
![]() |
Включение файлов XML, RSS и RDF Процедура включения внешнего правильно оформленного (well-formed) документа XML очень похожа на метод parsed. Режим обработки XML активизируется присваиванием атрибуту method значения XML, RSS или RDF. Кроме того, он автоматически выбирается при передаче атрибута src с расширениями .xml, .rss и .rdf. Атрибут del imiter в этом контексте задает имя элемента (тега), в котором производится поиск полей. В общем случае значения полей выводятся в порядке их следования в файле XML, если в теге <field> не указано имя выводимого элемента. Например, атрибут name="title" описывает символьные данные, заключенные между тегами <title> и </title> исходного документа XML. В качестве примера рассмотрим документ XML languages.xml, в котором перечисляются языки взаимодействия с PostgreSQL. Документ имеет следующую структуру: <?xml version="1.0" encoding="utf-8"?> <languages> <language> <name>C</name> <notes>Bui11-i n 1anguage.</notes> </language> <language> <name>LXP</name> <notes>Web-based content language.</notes> </language> <language> <name>PL/pgSQL</name> <notes>PostgreSQL procedural language.</notes> </language> </languages> Обратите внимание: каждый язык описывается отдельным элементом <1 anguage>. Чтобы произвести лексический разбор этого файла XML по аналогии с рассмотренным выше примером файла с разделителями, присвойте атрибуту del i mi ter тега <include> значение language, а атрибуту src — значение languages.xml. Пример приведен в листинге 13.24. Листинг 13.24. Включение файла XML <1хр> <include src="languages.xml" delimiter="language" method="xml"> Language Name: <field name="name" /><br /> Language Notes: <field name="notes" /><br /> <hr /> </include> </lxp> После выполнения этого фрагмента будет получен следующий результат: Language Name: C<br /> Language Notes: Built-in language.<br /> <hr /> Language Name: LXP<br /> Language Notes: Web-based content language.<br /> <hr /> > Language Name: PL/pgSQL<br /> Language Notes: PostgreSQL procedural language.<br /> <hr /> В листинге 13.25 приведен пример отображения простого документа RDF XML. Он отличается от примера из листинга 13.24 тем, что относится именно к документу RDF. В результате атрибут del imiter можно не указывать, поскольку значение по умолчанию item подходит для структуры данных RDF. Листинг 13.25. Включение файла RDF <1хр> <include src=»/home/web/ports/headlines/slashdot.rdf» lastblock=»5"> <table Dorder=»0" cellspacing=»l"><tr> <td bgcolor=»#ffffff» width=»100%> <div class=»content»>- <field name=»title»></div> </td> </tr><tr> <td bgcolor=»#e0e0e8" width=»100%> <strong> <field name=»link» type=»url» link=»Read More...» target=»_blank»> </strong><br /> </td> </tr></table> </include> </lxp> Обратите внимание на атрибут lastblock в листинге 13.25. Этот атрибут уже упоминался в подразделе «Включение файлов с разделителями» этого раздела. Атрибуты fi rstblock и lastblock также используются при включении файлов XML, RDF и RSS и определяют размер и смещение выводимых блоков. ВНИМАНИЕ Учтите, что все документы XML, включаемые средствами LXP, должны быть правильно оформлены, иначе модуль лексического разбора выдаст ошибку. Ошибки разбора XML сохраняются в журнале ошибок Apache с префиксом [Ixp] XML Parse Error. |
![]() |
![]() |
![]() |