Recientemente utilicé Firefox para depurar páginas web y descubrí que algunas declaraciones XSLT de Javascript para procesar XML solo son compatibles con los navegadores IE. Algunos artículos en Internet que presentan JavaScript XSLT para procesar XML se basan básicamente en AJAX.
Desesperado, escribí una pequeña función de Javascript XSLT para procesar la página de visualización XML. Ahora lo publico para compartirlo con todos y espero que puedan darme algunas sugerencias para mejorar.
Cuando se utiliza el objeto XSLTProcessor para procesar XML en Firefox, se utilizan principalmente dos métodos de este objeto:
1. transformarToFragment().
2. transformarToDocumento().
El siguiente código solo usa el método transformToFragment() para procesar archivos XML. Si está interesado en usar Javascript XSLT para procesar archivos XML en Firefox, también puede intentar reescribir el siguiente código para usar el método transformToDocument() para lograr el objetivo. función de procesamiento.
El código Javascript es el siguiente:
función inicializar() {
var xmlDoc;
var xslDoc;
// Determinar el tipo de navegador
if(documento.implementación && documento.implementación.createDocumento)
{
// Soporte del navegador Mozilla
intentar
{
xmlDoc = documento.implementación.createDocument("", "", null);
xmlDoc.async = falso;
xmlDoc.load("libro de visitas/libro de visitas.xml");
}
captura (e)
{
alerta("error:001");
}
intentar
{
xslDoc = document.implementation.createDocument("", "", null);
xslDoc.async = falso;
xslDoc.load("libro de visitas/libro de visitas.xsl");
}
captura (e)
{
alerta("error:002");
}
intentar
{
//Definir objeto XSLTProcessor
var xsltProcessor = nuevo XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
var oResultFragment = xsltProcessor.transformToFragment(xmlDoc,documento);
// Enviar el texto analizado a la página
var oDiv = document.getElementById("guestbookPanel");
oDiv.appendChild(oResultFragment);
}
captura (e)
{
alerta("error:003");
}
}
de lo contrario si (tipo de ventana.ActiveXObject! = 'indefinido')
{
//var xmlDoc=Server.CreateObject("Msxml2.DOMDocument.4.0");
//Soporta navegador IE
xmlDoc = nuevo ActiveXObject('Microsoft.XMLDOM');
xslDoc = nuevo ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = falso;
xslDoc.async = falso;
xmlDoc.load("libro de visitas/libro de visitas.xml");
xslDoc.load("libro de visitas/libro de visitas.xsl");
guestbookPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);
}
demás
{
alert("¡Navegador desconocido!");
}
}
javascript dom es la segunda forma de manejar datos de visualización XSL.
El código principal es el siguiente:
var xmlDoc;
var xslDoc;
// Determinar el tipo de navegador
if(documento.implementación && documento.implementación.createDocumento)
{
// Soporte del navegador Mozilla
intentar
{
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.async = falso;
xmlDoc.load("libro de visitas/libro de visitas.xml");
xslDoc = document.implementation.createDocument("", "", null);
xslDoc.async = falso;
xslDoc.load("libro de visitas/libro de visitas.xsl");
//Definir objeto XSLTProcessor
var xsltProcessor = nuevo XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
// método transformToDocument
resultado var = xsltProcessor.transformToDocument(xmlDoc);
var xmls = nuevo XMLSerializer();
document.getElementById("guestbookPanel").innerHTML = xmls.serializeToString(resultado);
}
captura (e)
{
alert("No se puede realizar el procesamiento xml/xsl");
}
}
de lo contrario si (tipo de ventana.ActiveXObject! = 'indefinido')
{
intentar
{
//Soporta navegador IE
xmlDoc = nuevo ActiveXObject('Msxml2.DOMDocument');
xslDoc = nuevo ActiveXObject('Msxml2.DOMDocument');
xmlDoc.async = falso;
xslDoc.async = falso;
xmlDoc.load("libro de visitas/libro de visitas.xml");
xslDoc.load("libro de visitas/libro de visitas.xsl");
guestbookPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);
}
captura (e)
{
alert("No se puede realizar el procesamiento xml/xsl");
}
}
demás
{
alert("¡Navegador desconocido!");
}