Недавно я использовал Firefox для отладки веб-страниц и обнаружил, что некоторые операторы Javascript XSLT для обработки XML поддерживают только браузеры IE. Некоторые статьи в Интернете, в которых рассказывается о JavaScript XSLT для обработки XML, в основном основаны на AJAX.
В отчаянии я написал небольшую функцию Javascript XSLT для обработки страницы отображения XML. Теперь я публикую его, чтобы поделиться со всеми, и надеюсь, что вы дадите мне несколько советов по улучшению.
При использовании объекта XSLTProcessor для обработки XML в Firefox вы в основном используете два метода этого объекта:
1. ТрансформироватьТофрагмент().
2. ТрансформироватьДокумент().
Следующий код использует только метод TransformToFragment() для обработки файлов XML. Если вы заинтересованы в использовании Javascript XSLT для обработки файлов XML в Firefox, вы также можете попытаться переписать следующий код, чтобы использовать метод TransformToDocument() для достижения цели. функция обработки.
Код Javascript выглядит следующим образом:
function Initialize() {
вар xmlDoc;
var xslDoc;
// Определяем тип браузера
if(document.implementation && document.implementation.createDocument)
{
// Поддержка браузера Mozilla
пытаться
{
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.async = ложь;
xmlDoc.load("гостевая книга/гостевая книга.xml");
}
поймать(е)
{
Предупреждение("ошибка: 001");
}
пытаться
{
xslDoc = document.implementation.createDocument("", "", null);
xslDoc.async = ложь;
xslDoc.load("гостевая книга/гостевая книга.xsl");
}
поймать(е)
{
Предупреждение("ошибка: 002");
}
пытаться
{
//Определяем объект XSLTProcessor
вар xsltProcessor = новый XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
вар oResultFragment = xsltProcessor.transformToFragment(xmlDoc,document);
// Выводим разобранный текст на страницу
var oDiv = document.getElementById("guestbookPanel");
oDiv.appendChild(oResultFragment);
}
поймать(е)
{
Предупреждение("ошибка: 003");
}
}
иначе, если (typeof window.ActiveXObject != 'не определено')
{
//var xmlDoc=Server.CreateObject("Msxml2.DOMDocument.4.0");
//Поддержка браузера IE
xmlDoc = новый ActiveXObject('Microsoft.XMLDOM');
xslDoc = новый ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = ложь;
xslDoc.async = ложь;
xmlDoc.load("гостевая книга/гостевая книга.xml");
xslDoc.load("гостевая книга/гостевая книга.xsl");
GuestbookPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);
}
еще
{
alert("Браузер неизвестен!");
}
}
javascript dom — это второй способ обработки отображаемых данных XSL.
Основной код выглядит следующим образом:
var xmlDoc;
var xslDoc;
// Определяем тип браузера
if(document.implementation && document.implementation.createDocument)
{
// Поддержка браузера Mozilla
пытаться
{
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.async = ложь;
xmlDoc.load("гостевая книга/гостевая книга.xml");
xslDoc = document.implementation.createDocument("", "", null);
xslDoc.async = ложь;
xslDoc.load("гостевая книга/гостевая книга.xsl");
//Определяем объект XSLTProcessor
вар xsltProcessor = новый XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
// метод TransformToDocument
результат вар = xsltProcessor.transformToDocument(xmlDoc);
вар xmls = новый XMLSerializer();
document.getElementById("guestbookPanel").innerHTML = xmls.serializeToString(результат);
}
поймать(е)
{
alert("Невозможно выполнить обработку xml/xsl");
}
}
иначе, если (typeof window.ActiveXObject != 'не определено')
{
пытаться
{
//Поддержка браузера IE
xmlDoc = новый ActiveXObject('Msxml2.DOMDocument');
xslDoc = новый ActiveXObject('Msxml2.DOMDocument');
xmlDoc.async = ложь;
xslDoc.async = ложь;
xmlDoc.load("гостевая книга/гостевая книга.xml");
xslDoc.load("гостевая книга/гостевая книга.xsl");
GuestbookPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);
}
поймать(е)
{
alert("Невозможно выполнить обработку xml/xsl");
}
}
еще
{
alert("Браузер неизвестен!");
}