首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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库。

示例配置

代码语言:javascript
复制
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结构。例如,声明所需的字符实体就足够了:

代码语言:javascript
复制
<!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需要将包含非字母数字字符的参数括入单引号或双引号,例如:

代码语言:javascript
复制
param1='http%3A//www.example.com':param2=value2

参数描述可以包含变量,例如,可以从单个变量中获取整行参数:

代码语言:javascript
复制
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”。

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com