XSLT#

O módulo é um filtro que transforma respostas XML usando uma ou mais folhas de estilo XSLT.

Ao compilar a partir do código-fonte, este módulo não é compilado por padrão; ele deve ser habilitado com a ‑‑with‑http_xslt_module opção de compilação.

Em nossos repositórios, o módulo é compilado dinamicamente e está disponível como um pacote separado chamado angie-module-xslt ou angie-pro-module-xslt.

Nota

Este módulo requer as bibliotecas libxml2 e libxslt.

Exemplo de Configuração#

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

Diretivas#

xml_entities#

Sintaxe

xml_entities caminho;

Padrão

Contexto

http, server, location

Especifica o arquivo DTD que declara entidades de caracteres. Este arquivo é compilado na etapa de configuração. Por razões técnicas, o módulo não consegue usar o subconjunto externo declarado no XML processado, então ele é ignorado e um arquivo especialmente definido é usado em seu lugar. Este arquivo não deve descrever a estrutura XML. É suficiente declarar apenas as entidades de caracteres necessárias, por exemplo:

<!ENTITY nbsp "&#xa0;">

xslt_last_modified#

Sintaxe

xslt_last_modified on | off;

Padrão

xslt_last_modified off;

Contexto

http, server, location

Permite preservar o campo de cabeçalho Last-Modified da resposta original durante transformações XSLT para facilitar o cache de resposta.

Por padrão, o campo de cabeçalho é removido pois o conteúdo da resposta é modificado durante as transformações e pode conter elementos gerados dinamicamente ou partes que são alteradas independentemente da resposta original.

xslt_param#

Sintaxe

xslt_param parâmetro valor;

Padrão

Contexto

http, server, location

Define os parâmetros para folhas de estilo XSLT. O valor é tratado como uma expressão XPath. O valor pode conter variáveis. Para passar um valor de string para uma folha de estilo, a diretiva xslt_string_param pode ser usada.

Pode haver várias diretivas xslt_param. Essas diretivas são herdadas do nível de configuração anterior se e somente se não há diretivas xslt_param e xslt_string_param definidas no nível atual.

xslt_string_param#

Sintaxe

xslt_string_param parâmetro valor;

Padrão

Contexto

http, server, location

Define os parâmetros de string para folhas de estilo XSLT. Expressões XPath no valor não são interpretadas. O valor pode conter variáveis.

Pode haver várias diretivas xslt_string_param. Essas diretivas são herdadas do nível de configuração anterior se e somente se não há diretivas xslt_param e xslt_string_param definidas no nível atual.

xslt_stylesheet#

Sintaxe

xslt_stylesheet folha-de-estilo [parâmetro=valor ...];

Padrão

Contexto

location

Define a folha de estilo XSLT e seus parâmetros opcionais. Uma folha de estilo é compilada na etapa de configuração.

Os parâmetros podem ser especificados separadamente, ou agrupados em uma única linha usando o delimitador ":". Se um parâmetro incluir o caractere ":", ele deve ser escapado como "%3A". Além disso, libxslt requer que parâmetros que contenham caracteres não alfanuméricos sejam colocados entre aspas simples ou duplas, por exemplo:

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

A descrição dos parâmetros pode conter variáveis, por exemplo, toda a linha de parâmetros pode ser obtida de uma única variável:

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

É possível especificar várias folhas de estilo. Elas serão aplicadas sequencialmente na ordem especificada.

xslt_types#

Sintaxe

xslt_types mime-tipo ...;

Padrão

xslt_types text/xml;

Contexto

http, server, location

Habilita transformações em respostas com os tipos MIME especificados além de text/xml. O valor especial "*" corresponde a qualquer tipo MIME. Se o resultado da transformação for uma resposta HTML, seu tipo MIME é alterado para text/html.