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
配置参数启用。
该模块需要libxml2和libxslt库。
配置示例
location / { xml_entities /site/dtd/entities.dtd; xslt_stylesheet /site/xslt/one.xslt param=value; xslt_stylesheet /site/xslt/two.xslt; }
指令
语法: | xml_entities |
---|---|
默认: | — |
上下文: | http , server , location |
指定声明字符实体的DTD文件。该文件在配置阶段编译。由于技术原因,模块无法使用处理过的XML中声明的外部子集,因此会被忽略并使用一个特别定义的文件。该文件不应描述XML结构。仅需声明所需的字符实体即可,例如:
<!ENTITY nbsp " ">
语法: | xslt_last_modified |
---|---|
默认: |
xslt_last_modified off; |
上下文: | http , server , location |
该指令在版本1.5.1中出现。
允许在XSLT转换期间保留原始响应中的“Last-Modified”头字段,以促进响应缓存。
默认情况下,由于响应内容在转换过程中被修改,可能包含动态生成的元素或独立于原始响应的部分,因此头字段将被删除。
语法: | xslt_param |
---|---|
默认: | — |
上下文: | http , server , location |
该指令在版本1.1.18中出现。
定义XSLT样式表的参数。 value
被视为XPath表达式。 value
可以包含变量。 要将字符串值传递给样式表,可以使用xslt_string_param指令。
可以有几个xslt_param
指令。 仅当当前级别未定义xslt_param
和xslt_string_param指令时,才从上一个配置级别继承这些指令。
语法: | xslt_string_param |
---|---|
默认: | — |
上下文: | http , server , location |
此指令出现在版本 1.1.18 中。
定义 XSLT 样式表的字符串参数。 value
中的 XPath 表达式不被解释。 value
可以包含变量。
可能会有多个 xslt_string_param
指令。这些指令仅在当前级别未定义 xslt_param 和 xslt_string_param
指令时继承自上一个配置级别。
语法: | xslt_stylesheet |
---|---|
默认: | — |
上下文: | location |
定义 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 |
---|---|
默认: |
xslt_types text/xml; |
上下文: | http , server , location |
启用与指定 MIME 类型的响应的转换,除了 “text/xml
” 之外的其他 MIME 类型。特殊值 “*
” 匹配任何 MIME 类型(0.8.29)。如果转换结果是 HTML 响应,则其 MIME 类型更改为 “text/html
”。