Недавно я использовал Firefox для отладки веб -страниц и обнаружил, что некоторые операторы JavaScript XSLT, которые обрабатывают только XML, поддерживают только браузер IE. Некоторые статьи в Интернете, которые вводят JavaScript XSLT для обработки XML, в основном основаны на AJAX.
Беспомощно, я написал небольшую функцию JavaScript XSLT -обработки XML -отображения. Теперь я публикую, чтобы поделиться с вами, я надеюсь, что вы можете дать мне несколько предложений для улучшения.
В Firefox, используя объект XSLTProcessor для обработки XML, в основном используя два метода этого объекта:
1. Transformtofragment ().
2. Transformtodocument ().
В следующем коде используется метод TransformTofragment () для реализации обработки файлов XML. Если вы заинтересованы в использовании JavaScript XSLT для обработки файлов XML в Firefox, вы можете также попытаться переписать следующий код в функцию обработки, реализованную с использованием метода TransformTodocument ().
Код JavaScript выглядит следующим образом:
Кода -копия выглядит следующим образом:
функция инициализировать () {
var xmldoc;
var xsldoc;
// определить тип браузера
if (document.Implementation && document.Implementation.createdocument)
{
// Поддержка браузера Mozilla
пытаться
{
xmldoc = document.implementation.createdocument ("", "", null);
xmldoc.async = false;
xmldoc.load ("Гостевая книга/гостевая книга.xml");
}
поймать (e)
{
Alert ("ошибка: 001");
}
пытаться
{
xsldoc = document.implementation.createdocument ("", "", null);
xsldoc.async = false;
xsldoc.load ("Гостевая книга/гостевая книга.xsl");
}
поймать (e)
{
Alert ("Ошибка: 002");
}
пытаться
{
// определить объект XSLTProcessor
var xsltprocessor = new xsltprocessor ();
xsltprocessor.importstylesheet (xsldoc);
var OresultFragment = xsltProcessor.TransformTofragment (xmldoc, документ);
// Вывод анализированный текст на страницу
var Odiv = document.getElementById ("GuestBookPanel");
Odiv.AppendChild (OresultFragment);
}
поймать (e)
{
Alert ("Ошибка: 003");
}
}
else if (typeof window.activexobject! = 'undefined')
{
// var xmldoc = server.createObject ("msxml2.domdocument.4.0");
// Поддержка IE Browser
xmldoc = new ActivexObject ('microsoft.xmldom');
xsldoc = new ActivexObject ('microsoft.xmldom');
xmldoc.async = false;
xsldoc.async = false;
xmldoc.load ("Гостевая книга/гостевая книга.xml");
xsldoc.load ("Гостевая книга/гостевая книга.xsl");
GuestBookPanel.innerhtml = xmldoc.documentelement.transformnode (xsldoc);
}
еще
{
оповещение («браузер неизвестен!»);
}
}
JavaScript dom Второй способ обработки данных отображения XSL.
Основной код заключается в следующем:
Кода -копия выглядит следующим образом:
var xmldoc;
var xsldoc;
// определить тип браузера
if (document.Implementation && document.Implementation.createdocument)
{
// Поддержка браузера Mozilla
пытаться
{
xmldoc = document.implementation.createdocument ("", "", null);
xmldoc.async = false;
xmldoc.load ("Гостевая книга/гостевая книга.xml");
xsldoc = document.implementation.createdocument ("", "", null);
xsldoc.async = false;
xsldoc.load ("Гостевая книга/гостевая книга.xsl");
// определить объект XSLTProcessor
var xsltprocessor = new xsltprocessor ();
xsltprocessor.importstylesheet (xsldoc);
// Метод преобразования
var result = xsltprocessor.transformtodocument (xmldoc);
var xmls = new XmlSerializer ();
document.getElementById ("GuestBookPanel"). innerHtml = xmls.serializetoString (результат);
}
поймать (e)
{
Alert («Невозможно сделать обработку XML/XSL»);
}
}
else if (typeof window.activexobject! = 'undefined')
{
пытаться
{
// Поддержка IE Browser
xmldoc = new ActivexObject ('msxml2.domdocument');
xsldoc = new ActivexObject ('msxml2.domdocument');
xmldoc.async = false;
xsldoc.async = false;
xmldoc.load ("Гостевая книга/гостевая книга.xml");
xsldoc.load ("Гостевая книга/гостевая книга.xsl");
GuestBookPanel.innerhtml = xmldoc.documentelement.transformnode (xsldoc);
}
поймать (e)
{
Alert («Невозможно сделать обработку XML/XSL»);
}
}
еще
{
оповещение («браузер неизвестен!»);
}