Главная » XSLT » Строки XSLT – Введение

0

В деле манипуляции строками XSLT 1.0, конечно же, не хватает тяжелой ар­тиллерии Perl. Язык XSLT оптимизирован для обработки XML-разметки, а не строк. Но, поскольку XML – это просто структурированный текстовый формат, то строки с неизбежностью появляются во всех задачах преобразования, кроме самых простых. К сожалению, в XSLT 1.0 есть всего девять стандартных функций для обработки строк. Напротив, в Java их около двух десятков, а в Perl – бесспор­ном короле современных языков для обработки текстов – пара десятков плюс чрезвычайно богатый механизм регулярных выражений.

Но с выходом в свет реализаций XSLT 2.0 программисты XSLT могут перестать так уж сильно завидовать Perl-овикам. В XPath 2.0 есть 20 функций, относящихся к работе со строками, в том числе и поддержка регулярных выражений. Помимо того, добавлены средства для анализа неструктурированного текста с помощью ре­гулярных выражений с целью преобразования его в правильный XML-документ.

У программистов на XSLT 1.0, нуждающихся в нетривиальной обработке строк, есть два варианта действий. Во-первых, можно вызывать внешние функ­ции, написанные на Java или ином языке, который поддерживается имеющимся XSLT-процессором. Это очень удобно, если только не стоит вопрос о переноси­мости. Во-вторых, можно реализовать дополнительные средства обработки строк пря­мо на XSLT. В этой главе мы рассмотрим, что можно делать со строками в XSLT 1.0 и как те же задачи решаются в XSLT 2.0.

Для реализации дополнительных функций работы со строками в XSLT 1.0 име­ющиеся функции сочетаются с рекурсией, которая является неотъемлемой частью всех сколько-нибудь содержательных применений XSLT. На самом деле, рекурсия – это такой важный компонент XSLT, что некоторые из рецептов в этой главе имеет смысл изучить, даже если вы не собираетесь реализовывать обработ­ку строк непосредственно на этом языке.

В этой книге мы часто ссылаемся на великолепный проект EXSLT.org, создан­ный по инициативе сообщества пользователей, желающих стандартизировать расширения XSLT. Рекомендую заглянуть на сайт проекта по адресу http:// www.exslt.org.

Занимаясь задачей, для решения которой требуется больше пары строк ® кода, я всегда применяю появившуюся в XSLT 2.0 возможность писать полноценные функции на языке XPath. В XSLT 1.0 для этой цели использу­ются именованные шаблоны, вызываемые с помощью xsl:call-template.

Мангано Сэл  XSLT. Сборник рецептов. – М.: ДМК Пресс, СПБ.: БХВ-Петербург, 2008. – 864 с.: ил.

По теме:

  • Комментарии