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 configureパラメータを有効にする必要があります。

このモジュールは 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_paramxslt_string_paramのディレクティブがない場合に限り、これらのディレクティブは上の設定レベルから引き継ぎます。

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

このディレクティブはバージョン1.1.18から導入されました。

XSLTスタイルシートのためのパラメータを定義します。value の中のxPath表現は解釈されません。value は変数を含むことができます。

幾つかのxslt_string_paramディレクティブが有り得ます。現在のレベルにxslt_paramxslt_string_paramのディレクティブがない場合に限り、これらのディレクティブは上の設定レベルから引き継ぎます。

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

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, server, location

"text/xml"に加えて、指定されたMIMEタイプで応答の変換を行うことができます。特別な値"*"は全てのMIMEタイプに一致します(0.8.29)。変換の結果がHTML応答であった場合、MIMEタイプは"text/html"に変更されます。

TOP
inserted by FC2 system