モジュール 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+) は、1つ以上の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 path;
デフォルト
コンテキスト http, server, location

文字エンティティを宣言するDTDファイルを指定します。このファイルは設定段階でコンパイルされます。技術的な理由により、モジュールは処理されたXMLで宣言された外部サブセットを使用することができないため、無視され、代わりに特別に定義されたファイルが使用されます。このファイルはXML構造を記述する必要はありません。たとえば、必要な文字エンティティを宣言するだけで十分です。

<!ENTITY nbsp "&#xa0;">

構文 xslt_last_modified on | off;
デフォルト
xslt_last_modified off;
コンテキスト http, server, location

このディレクティブはバージョン1.5.1で登場しました。

XSLT変換中に、応答のキャッシュを容易にするために、元の応答からの「Last-Modified」ヘッダーフィールドを保持できるようにします。

デフォルトでは、応答の内容が変換中に変更され、元の応答とは独立して変更される動的に生成された要素や部分が含まれる可能性があるため、ヘッダーフィールドは削除されます。

構文 xslt_param parameter value;
デフォルト
コンテキスト http, server, location

このディレクティブはバージョン1.1.18で登場しました。

XSLTスタイルシートのパラメータを定義します。value は XPath 式として扱われます。value には変数を記述できます。スタイルシートに文字列値を渡すには、xslt_string_param ディレクティブを使用できます。

複数の xslt_param ディレクティブを使用できます。これらのディレクティブは、現在のレベルで xslt_param および xslt_string_param ディレクティブが定義されていない場合にのみ、前の設定レベルから継承されます。

構文 xslt_string_param parameter value;
デフォルト
コンテキスト http, server, location

このディレクティブはバージョン1.1.18で登場しました。

XSLTスタイルシートの文字列パラメータを定義します。value のXPath式は解釈されません。value には変数を記述できます。

複数の xslt_string_param ディレクティブを使用できます。これらのディレクティブは、現在のレベルで xslt_param および xslt_string_param ディレクティブが定義されていない場合にのみ、前の設定レベルから継承されます。

構文 xslt_stylesheet stylesheet [parameter=value ...];
デフォルト
コンテキスト location

XSLTスタイルシートとそのオプションパラメータを定義します。スタイルシートは設定段階でコンパイルされます。

パラメータは、個別に指定するか、「:」区切り文字を使用して1行にグループ化することができます。パラメータに「:」文字が含まれている場合は、「%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, server, location

text/xml」に加えて、指定されたMIMEタイプの応答で変換を有効にします。特別な値「*」は、任意のMIMEタイプ (0.8.29) に一致します。変換結果がHTML応答の場合、そのMIMEタイプは「text/html」に変更されます。