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
.
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#
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 " ">
xslt_last_modified#
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#
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#
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#
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#
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
.