Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Веб-разработка? Это просто! Кроссбраузерное XSLT-преобразование в JavaScript


Кроссбраузерное XSLT-преобразование в JavaScript

Столкнулся я однажды с необходимостью отобразить XML-данные погодного информера gismeteo посредством XSLT-шаблона. Причем возникла острая необходимость сделать это через JavaScript, так как на предлагаемом бесплатном хостинге не было поддержки PHP, а значит отпарсить XML на сервере не представлялось возможным.

В результате этой острой необходимости родился код на JavaScript, который я и предлагаю на ваше рассмотрение.

function transformXslt(source,style) {
if(window.ActiveXObject)
{
return source.transformNode(style);
}
else if(window.XSLTProcessor)
{
var xsltProcessor=new XSLTProcessor();
xsltProcessor.importStylesheet(style);
var resultDocument = xsltProcessor.transformToDocument(source);
var xmls = new XMLSerializer();
return xmls.serializeToString(resultDocument);
}
else
{
alert("Преобразование XML не поддерживается браузером");
return null;
}
}

Что мы здесь видим?

А видим мы здесь кроссбраузерное решение данной задачи. XSLT-преобразование в IE производится посредством метода transformNode XML-документа. Во всех остальных браузерах(FF, Chrome, Safari, Opera) XSLT-преобразование делается совсем по-другому. И делается оно посредством объекта XSLTProcessor, в который методом importStylesheet загружается файл стилей XSLT, а результирующий документ генерируется методом transformToDocument(xml). И напоследок мы поручим объекту XMLSerializer сгенерить строковое представление результирующего XML-документа.

И напоследок еще одна полезная, и такая же кроссбраузерная, функция, которая преобразует строковое представление XML (и XSLT)-документа собственно в сам документ, готовый для его дальнейшего использования.

Продолжение статьи "Кроссбраузерное XSLT-преобразование в JavaScript" и многие другие статьи посвященные веб-разработке вы можете на сайте Веб-разработка? Это просто!.

В избранное