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
配置参数启用。
示例配置
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 " ">
句法: | 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
”。