Re: ngx_http_xslt_module: убрать заголовок xml
Maxim Dounin
mdounin на mdounin.ru
Вт Дек 27 11:34:36 UTC 2011
Hello!
On Tue, Dec 27, 2011 at 02:11:41PM +0300, Eugene Batogov wrote:
> Привет.
>
> Столкнулся с проблемой. Мне необходимо преобразовать xml в JavaScript,
> для этого использую ngx_http_xslt_module.
>
> Конфигурация nginx:
>
> location portal-facade-ytraffic-jsonpp {
> proxy_pass http://op.yandex.ru/;
> proxy_set_header Host op.yandex.ru;
> add_header Content-Type application/x-javascript;
> xslt_stylesheet /var/spool/nginx/tve-jsonpp/yandex-traffic.xsl;
> break;
> }
>
> XSLT-преобразование:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:template match="/">
> <![CDATA[fw.core.RequestManager.response({ rate:]]>
> <xsl:value-of select="export/Traffic/rate" />
> <![CDATA[});]]>
> </xsl:template>
> </xsl:stylesheet>
>
> Оно преобразовывает XML с сайта Яндекс.Пробки в JavaScript:
>
> fw.core.RequestManager.response({ rate: 7 });
>
> Проблема в том, что в ответе первой строкой выдается XML-заголовок:
>
> <?xml version="1.0"?>
> fw.core.RequestManager.response({ rate: 7 });
>
> Вот именно этот заголовок мне надо убрать, и оставить только чистый
> JavaScript. Как это можно сделать?
Добавить в xslt шаблон:
<xsl:output method="text" media-type="application/x-javascript" />
И убрать add_header.
Maxim Dounin
Подробная информация о списке рассылки nginx-ru