XSLT#

El módulo es un filtro que transforma respuestas XML utilizando una o más hojas de estilo XSLT.

Cuando se compila desde el código fuente, este módulo no se construye por defecto; debe habilitarse con la opción de compilación --with-http_xslt_module.

En nuestros repositorios, el módulo se construye dinámicamente y está disponible como un paquete separado denominado angie-module-xslt o angie-pro-module-xslt.

Nota

Este módulo requiere las bibliotecas libxml2 y libxslt.

Ejemplo de configuración#

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

Directivas#

xml_entities#

Sintaxis

xml_entities path;

Predeterminado

Contexto

http, server, location

Especifica el archivo DTD que declara entidades de caracteres. Este archivo se compila en la etapa de configuración. Por razones técnicas, el módulo no puede usar el subconjunto externo declarado en el XML procesado, por lo que se ignora y se utiliza un archivo especialmente definido en su lugar. Este archivo no debe describir la estructura XML. Es suficiente declarar únicamente las entidades de caracteres necesarias, por ejemplo:

<!ENTITY nbsp "&#xa0;">

xslt_last_modified#

Sintaxis

xslt_last_modified on | off;

Predeterminado

xslt_last_modified off;

Contexto

http, server, location

Permite conservar el campo de cabecera Last-Modified de la respuesta original durante las transformaciones XSLT para facilitar el almacenamiento en caché de la respuesta.

De forma predeterminada, este campo de cabecera se elimina ya que el contenido de la respuesta se modifica durante las transformaciones y puede contener elementos generados dinámicamente o partes que cambian independientemente de la respuesta original.

xslt_param#

Sintaxis

xslt_param parameter value;

Predeterminado

Contexto

http, server, location

Define parámetros para las hojas de estilo XSLT. El valor se interpreta como una expresión XPath y puede contener variables. Para pasar un valor de cadena a una hoja de estilo puede usarse la directiva xslt_string_param.

Pueden definirse varias directivas xslt_param. Estas se heredan del nivel de configuración anterior únicamente si en el nivel actual no se han definido directivas xslt_param ni xslt_string_param.

xslt_string_param#

Sintaxis

xslt_string_param parameter value;

Predeterminado

Contexto

http, server, location

Define parámetros de tipo cadena para las hojas de estilo XSLT. Las expresiones XPath en el valor no se interpretan. El valor puede contener variables.

Pueden definirse varias directivas xslt_string_param. Estas se heredan del nivel de configuración anterior únicamente si en el nivel actual no se han definido directivas xslt_param ni xslt_string_param.

xslt_stylesheet#

Sintaxis

xslt_stylesheet stylesheet [parameter=value ...];

Predeterminado

Contexto

location

Define la hoja de estilo XSLT y sus parámetros opcionales. Una hoja de estilo se compila en la etapa de configuración.

Los parámetros pueden especificarse de forma separada o agrupados en una sola línea usando el delimitador ":". Si un parámetro incluye el carácter ":", debe escaparse como "%3A". Además, libxslt requiere encerrar entre comillas simples o dobles los parámetros que contengan caracteres no alfanuméricos, por ejemplo:

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

La descripción de parámetros puede contener variables, por ejemplo, toda la línea de parámetros puede obtenerse de una sola variable:

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

Es posible especificar varias hojas de estilo. Se aplicarán secuencialmente en el orden indicado.

xslt_types#

Sintaxis

xslt_types mime-type ...;

Predeterminado

xslt_types text/xml;

Contexto

http, server, location

Habilita transformaciones en respuestas con los tipos MIME especificados además de text/xml. El valor especial "*" coincide con cualquier tipo MIME. Si el resultado de la transformación es una respuesta HTML, su tipo MIME se cambia a text/html.