モジュール 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 設定パラメータで有効にする必要があります。
このモジュールには、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スタイルシートとそのオプションパラメータを定義します。スタイルシートは設定段階でコンパイルされます。
パラメータは、個別に指定するか、「:」区切り文字を使用して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 |
|---|---|
| デフォルト |
xslt_types text/xml; |
| コンテキスト |
http, server, location |
「text/xml」に加えて、指定されたMIMEタイプの応答で変換を有効にします。特別な値「*」は、任意のMIMEタイプ (0.8.29) に一致します。変換結果がHTML応答の場合、そのMIMEタイプは「text/html」に変更されます。