Nginx

ngx_http_xslt_module

Module ngx_http_xslt_module

  • 示例配置

  • 指令

  • xml_entities

  • xslt_last_modified

  • xslt_param

  • xslt_string_param

  • xslt_stylesheet

  • xslt_types

ngx_http_xslt_module(0.7.8+)是使用一个或多个XSLT样式表将XML响应的滤波器。

该模块不是默认生成的,它应该使用--with-http_xslt_module配置参数启用。

该模块需要libxml2libxslt库。

示例配置

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

指令

句法:xml_entities路径;
默认:
语境:http,服务器,位置

指定声明字符实体的DTD文件。该文件在配置阶段进行编译。由于技术原因,模块无法使用在已处理的XML中声明的外部子集,因此它将被忽略,而是使用专门定义的文件。这个文件不应该描述XML结构。例如,声明所需的字符实体就足够了:

<!ENTITY nbsp "&#xa0;">

句法:xslt_last_modified on | 关闭;
默认:xslt_last_modified关闭;
语境:http,服务器,位置

允许在XSLT转换期间保留来自原始响应的“Last-Modified”标题字段以促进响应缓存。

默认情况下,由于响应的内容在变换过程中被修改,因此标题字段被删除,并且可能包含动态生成的元素或与原始响应无关地更改的部分。

句法:xslt_param参数值;
默认:
语境:http,服务器,位置

定义XSLT样式表的参数。将value被视为一个XPath表达式。该value可以包含变量。要将字符串值传递给样式表,可以使用xslt_string_param指令。

可能有几个xslt_param指令。当且仅当xslt_param当前级别上没有定义和xslt_string_param指令时,这些指令才从前一级继承。

句法:xslt_string_param参数值;
默认:
语境:http,服务器,位置

定义XSLT样式表的字符串参数。value不解释XPath表达式。该value可以包含变量。

可能有几个xslt_string_param指令。当且仅当xslt_string_param在当前级别上没有定义xslt_param和指令时,这些指令才从前一级继承。

句法:xslt_stylesheet样式表参数=值...;
默认:
语境:位置

定义XSLT样式表及其可选参数。样式表在配置阶段被编译。

参数可以单独指定,也可以使用“ :”分隔符分组在一行中。如果参数包含“ :”字符,则应该将其转义为“ %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; }

可以指定几个样式表。它们将按照指定的顺序依次应用。

句法:xslt_types mime-type ...;
默认:xslt_types text / xml;
语境:http,服务器,位置

除了“ text/xml” 之外,还可以在指定的MIME类型的响应中启用转换。特殊值“ *”匹配任何MIME类型(0.8.29)。如果转换结果是HTML响应,则其MIME类型将更改为“ text/html”。