Персональный
сайт
Игоря
Сысоева


 
english
 
sysoev.ru
 
nginx
 поехали!    
 документация    
 поддержка    
 изменения    
 скачать    
 ссылки    
 
mod_accel
mod_realip
mod_deflate
программирование
всякая всячина
windows
freebsd
apache
pppd
unix
web
 
обо мне
для писем
для денег
 

Директивы модуля ngx_http_xslt_module

 

04.08.2008

Модуль ngx_http_xslt_module — это фильтр, преобразующий XML-ответ с помощью одного или нескольких XSLT-шаблонов (0.7.8+). По умолчанию модуль не собирается, нужно разрешить его сборку при конфигурировании параметром --with-http_xslt_module. Для сборки и работы этого модуля нужны библиотеки libxml2 и libxslt.

Содержание

Пример конфигурации
Директивы
xml_entities
xslt_stylesheet
xslt_types

Пример конфигурации

location / {
    xml_entities       /site/dtd/entities.dtd;
    xslt_stylesheet    /site/xslt/one.xslt   param=value;
    xslt_stylesheet    /site/xslt/two.xslt;
}

Директивы


syntax: xml_entities путь
default: нет
context: http, server, location

Директива задаёт файл DTD, в котором описаны символьные сущности. Этот файл компилируется на стадии конфигурации. По техническим причинам модуль не имеет возможности использовать внешнее подмножество, заданное в обрабатываемом XML, поэтому оно игнорируется, а вместо него используется специально заданный файл. В этом файле не нужно описывать структуру XML, достаточно только объявления необходимых символьных сущностей, например:

<!ENTITY nbsp "&#xa0;">


syntax: xslt_stylesheet шаблон [параметр ...]
default: нет
context: location

Директива задаёт XSLT-шаблон и параметры для этого шаблона. Шаблон компилируется на стадии конфигурации. Параметры задаются в формате

param=value

Их можно задавать как по отдельности, так и группировать в одной строке, разделяя символом ":". Если же в самих параметрах встречается символ ":", то его нужно экранировать в виде "%3A". Кроме того, необходимо помнить о требовании libxslt, чтобы параметры, содержащие не только алфавитно-цифровые символы, были заключены в одинарные или двойные кавычки, например:

param1='http%3A//www.example.com':param2=value2

В описании параметров можно использовать переменные, например, целая строка параметров может быть взята из одной переменной:

location / {
    xslt_stylesheet    /site/xslt/one.xslt
                       $arg_xslt_params
                       param1='$value1':param2=value2
                       param3=value3;
}

Можно указать несколько шаблонов — в этом случае они будут применяться последовательно в порядке их описания.


syntax: xslt_types mime-тип [mime-тип ...]
default: xslt_types text/xml
context: http, server, location

Директива разрешает замену строк в ответах с указанными MIME-типами в дополнение к "text/xml". Если в результате преобразования выдаётся HTML-ответ, то его MIME-тип меняется на "text/html".


(C) Игорь Сысоев
http://sysoev.ru