![]() | |||
Чтение файлов в формате NITF (News Industry Text Format) на PHP (исходники)Источник: IBM developerWorks Россия Викрам Васвани
ВведениеXML позволяет использовать произвольные теги и элементы разметки для описания содержимого документов. Благодаря данному преимуществу XML стал де-факто стандартом для использования в приложениях, занимающихся обменом данными, специфичными для той или иной области. В частности, новостные агентства зачастую используют NITF (News Industry Text Format) - набор XML-элементов, позволяющих определять структуру и описывать содержимое новостных статей в виде документов XML, а также облегчающих их распространение и обмен. NITF - это открытый стандарт, широко используемый некоторыми крупнейшими мировыми агентствами новостей. Он разработан и в настоящее время поддерживается Международным советом по прессе и телекоммуникациям (International Press Telecommunications Council - IPTC). Для облегчения работы с данным форматом был создан PHP-пакет XML_NITF, который можно найти в PHP Extension and Application Repository (PEAR). С помощью XML_NITF API можно извлекать содержимое различных элементов из файлов в формате NITF и далее использовать его в приложениях на PHP. Таким образом, пакет представляет собой надежный и простой в использовании инструмент для любых PHP/NITF-приложений. УстановкаXML_NITF, поддерживаемый Патриком О"Лоуном (Patrick O'Lone), был выпущен под лицензией PHP. Для его корректной работы требуется PHP версии не ниже 4.3.0. Пакет проще всего установить с помощью автоматического инсталлятора PEAR, который по умолчанию включен в поставку PHP. Для установки XML_NITF просто выполните следующую команду из командной строки:
Инсталлятор PEAR должен соединиться с сервером пакетов PEAR, загрузить XML_NITF и установить его в соответствующее место на диске. В данной статье используется XML_NITF V. 1.1.0. Пакет можно также установить вручную. Для этого скачайте архив с исходным кодом со страницы проекта и распакуйте в любую папку в вашей системе. Подобная ручная установка требует определенного представления о структуре пакетов PEAR. Перед XML_NITF необходимо установить еще один PEAR-пакет, а именно XML_Parser. Он также может устанавливаться автоматически, как описано выше, или же вручную. О формате NITFДля работы с XML_NITF необходимо иметь базовое представление о формате NITF. Обратите внимание на пример простого документа NITF, приведенный в листинге 1: Листинг 1. Пример документа NITF
Любой документ в формате NITF состоит из двух главных разделов:
Каждый из разделов в свою очередь делится на подразделы. Например, как показано в листинге 1, элемент Необходимо отметить, что в листинге 1 показан далеко не полный перечень элементов, определенных в спецификации NITF. Это не более чем простой пример, специально созданный для облегчения понимания формата теми, кто не имеет опыта использования NITF. Доступ к базовой информацииСоздав документ в формате NITF, можно начать использовать XML_NITF, обеспечивающий простой доступ ко всей содержащийся в документе информации. PHP-скрипт для извлечения заголовка, имени автора и самого содержимого статьи показан в листинге 2: Листинг 2. PHP-скрипт, извлекающий заголовок и содержимое документа в формате NITF
Скрипт в листинге 2 использует пакет XML_NITF для чтения документа NITF, показанного выше в листинге 1, и трансформирует его содержимое в страницу HTML, отображаемую любым Web-браузером. Вначале скрипт инициализирует экземпляр класса XML_NITF путем обращения к соответствующему файлу. Далее вызывается метод Вывод листинга 2 показан на рисунке 1: Рисунок 1. Web-страница, созданная на основе документа NITF Извлечение дополнительной информацииПакет XML_NITF также предоставляет методы для извлечения метаданных, в частности, содержимого элементов Листинг 3. PHP-скрипт, извлекающий метаданные из документа NITF
В листинге 3 показано, как использовать три важных метода:
Во всех трех случаях, возвращаемое значение методов обрабатывается внутри цикла Вывод листинга 3 показан на рисунке 2: Рисунок 2. Вывод метаданных с помощью скрипта в листинге 3 Как видно из примеров, пакет XML_NITF предоставляет удобные средства для простого доступа к нужным фрагментам новостных статей, представленных в формате NITF. Попробуйте применить данный пакет в следующий раз, когда вам придется иметь дело с NITF, и составьте свое мнение о нем. |