ngx_http_xslt_module
ngx_http_xslt_module(0.7.8+)은 하나 이상의 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;
}
Directives
Syntax: xml_entities path;
Default: —
Context: http, server, location
문자 엔터티를 선언하는 DTD 파일을 지정합니다. 이 파일은 구성 스토리지에서 컴파일됩니다. 기술적 이유로 이 모듈은 처리된 XML에서 선언된 외부 서브셋을 사용할 수 없으므로 이를 무시하고 그 대신 특별히 지정된 파일을 사용합니다. 이 파일은 XML 구조를 설명해서는 안 됩니다. 필요한 문자 엔터티만 선언하는 것으로 충분합니다. 예를 들어, 다음과 같습니다.
<!ENTITY nbsp " ">
Syntax: xslt_last_modified on | off;
Default: xslt_last_modified off;
Context: http, server, location
This directive appeared in version 1.5.1.
XSLT 변환 중 원본 응답에서 “Last-Modified” 헤더 필드를 저장하여 응답 캐싱을 지원합니다.
기본적으로 이 헤더 필드는 제거됩니다. 변환 중에 응답 내용이 수정되고, 원본 응답과는 독립적으로 변경되는, 동적으로 생성된 요소나 부분을 포함할 수 있기 때문입니다.
Syntax: xslt_param parameter value;
Default: —
Context: http, server, location
This directive appeared in version 1.1.18.
XSLT 스타일시트의 매개변수를 정의합니다. value는 XPath 표현으로 처리됩니다. value는 변수를 포함할 수 있습니다. 스타일시트에 문자열 값을 전달할 때는 xslt_string_param 명령을 사용할 수 있습니다.
xslt_param 명령을 여러 개 사용할 수 있습니다. 만 있을 경우, 이 명령은 이전 구성 수준에서 상속됩니다.
Syntax: xslt_string_param parameter value;
Default: —
Context: http, server, location
This directive appeared in version 1.1.18.
XSLT 스타일시트의 문자열 매개변수를 정의합니다. value의 XPath 표현은 해석되지 않습니다. value는 변수를 포함할 수 있습니다.
xslt_string_param 명령을 여러 개 사용할 수 있습니다. 이 명령은 현재 수준에서 xslt_param 및 xslt_string_param 명령이 없는 경우에만 이전 구성 수준에서 상속됩니다.
Syntax: xslt_stylesheet stylesheet [parameter=value ...];
Default: —
Context: location
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;
}
여러 스타일시트를 지정할 수 있습니다. 스타일시트는 지정된 순서대로 적용됩니다.
Syntax: xslt_types mime-type ...;
Default: xslt_types text/xml;
Context: http, server, location
“text/xml” 외에 지정된 MIME 유형이 포함된 응답에서 변환을 지원합니다. 특수 값 “*”은 모든 MIME 유형과 일치합니다(0.8.29). 변환 결과가 HTML 응답일 경우, MIME 유형이 “text/html”로 변경됩니다.