Recentemente, usei o Firefox para depurar páginas da web e descobri que algumas instruções Javascript XSLT para processamento de XML suportam apenas navegadores IE. Alguns artigos na Internet que apresentam JavaScript XSLT para processar XML são basicamente baseados em AJAX.
Em desespero, escrevi uma pequena função de Javascript XSLT para processar a página de exibição XML. Agora estou postando para compartilhar com todos e espero que vocês possam me dar algumas sugestões de melhorias.
Ao usar o objeto XSLTProcessor para processar XML no Firefox, você usa principalmente dois métodos deste objeto:
1. transformToFragment().
2. transformToDocument().
O código a seguir usa apenas o método transformToFragment() para processar arquivos XML. Se você estiver interessado em usar Javascript XSLT para processar arquivos XML no Firefox, você também pode tentar reescrever o código a seguir para usar o método transformToDocument() para obter o resultado. função de processamento.
O código Javascript é o seguinte:
function inicialize() {
var xmlDoc;
var xslDoc;
// Determina o tipo de navegador
if(document.implementação && document.implementation.createDocument)
{
//Suporte ao navegador Mozilla
tentar
{
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.async = falso;
xmlDoc.load("livro de visitas/livro de visitas.xml");
}
pegar (e)
{
alerta("erro:001");
}
tentar
{
xslDoc = document.implementation.createDocument("", "", null);
xslDoc.async = falso;
xslDoc.load("livro de visitas/livro de visitas.xsl");
}
pegar (e)
{
alerta("erro:002");
}
tentar
{
//Define o objeto XSLTProcessor
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
var oResultFragment = xsltProcessor.transformToFragment(xmlDoc,document);
// Envia o texto analisado para a página
var oDiv = document.getElementById("guestbookPanel");
oDiv.appendChild(oResultFragment);
}
pegar (e)
{
alerta("erro:003");
}
}
senão if (typeof window.ActiveXObject! = 'indefinido')
{
//var xmlDoc=Server.CreateObject("Msxml2.DOMDocument.4.0");
//Suporte ao navegador IE
xmlDoc = novo ActiveXObject('Microsoft.XMLDOM');
xslDoc = novo ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = falso;
xslDoc.async = falso;
xmlDoc.load("livro de visitas/livro de visitas.xml");
xslDoc.load("livro de visitas/livro de visitas.xsl");
guestbookPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);
}
outro
{
alert("Navegador desconhecido!");
}
}
javascript dom é a segunda maneira de lidar com dados de exibição XSL.
O código principal é o seguinte:
var xmlDoc;
var xslDoc;
// Determina o tipo de navegador
if(document.implementação && document.implementation.createDocument)
{
//Suporte ao navegador Mozilla
tentar
{
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.async = falso;
xmlDoc.load("livro de visitas/livro de visitas.xml");
xslDoc = document.implementation.createDocument("", "", null);
xslDoc.async = falso;
xslDoc.load("livro de visitas/livro de visitas.xsl");
//Define o objeto XSLTProcessor
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
// método transformToDocument
var resultado = xsltProcessor.transformToDocument(xmlDoc);
var xmls = new XMLSerializer();
document.getElementById("guestbookPanel").innerHTML = xmls.serializeToString(resultado);
}
pegar (e)
{
alert("Não é possível fazer o processamento xml/xsl");
}
}
senão if (typeof window.ActiveXObject! = 'indefinido')
{
tentar
{
//Suporte ao navegador IE
xmlDoc = novo ActiveXObject('Msxml2.DOMDocument');
xslDoc = novo ActiveXObject('Msxml2.DOMDocument');
xmlDoc.async = falso;
xslDoc.async = falso;
xmlDoc.load("livro de visitas/livro de visitas.xml");
xslDoc.load("livro de visitas/livro de visitas.xsl");
guestbookPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);
}
pegar (e)
{
alert("Não é possível fazer o processamento xml/xsl");
}
}
outro
{
alert("Navegador desconhecido!");
}