Kürzlich habe ich Firefox verwendet, um Webseiten zu debuggen, und stellte fest, dass einige JavaScript XSLT -Anweisungen, die XML verarbeiten, den IE -Browser nur unterstützen. Einige Artikel im Internet, die JavaScript XSLT in die Verarbeitung von XML einführen, basieren im Grunde auf AJAX.
Hilflos schrieb ich eine kleine Funktion von JavaScript XSLT Processing XML Display -Seiten. Jetzt poste ich, um mit Ihnen zu teilen, ich hoffe, Sie können mir einige Verbesserungsvorschläge geben.
In Firefox unter Verwendung des XSLTProcessor -Objekts zur Verarbeitung von XML, wobei hauptsächlich zwei Methoden dieses Objekts verwendet werden:
1. transformtofragment ().
2. transformtodocument ().
Der folgende Code verwendet nur die Methode TransformToFRagment (), um die XML -Dateiverarbeitung zu implementieren. Wenn Sie JavaScript XSLT verwenden möchten, um XML -Dateien in Firefox zu verarbeiten, können Sie auch versuchen, den folgenden Code in eine Verarbeitungsfunktion umzuschreiben, die mit der Methode von TransformToDoCument () implementiert ist.
Der JavaScript -Code lautet wie folgt:
Die Codekopie lautet wie folgt:
Funktion initialize () {
var xmldoc;
var xsldoc;
// Bestimmen Sie den Browsertyp
if (document.implementation && document.implementation.createdocument)
{
// Mozilla Browser unterstützen
versuchen
{
xmldoc = document.implementation.createdocument ("", "", null);
xmldoc.async = false;
xmldoc.load ("Gästebuch/Gästebuch.xml");
}
fangen (e)
{
alert ("Fehler: 001");
}
versuchen
{
xsldoc = document.implementation.createdocument ("", "", null);
XSldoc.async = false;
xsldoc.load ("Gästebuch/Gästebuch.xsl");
}
fangen (e)
{
alert ("Fehler: 002");
}
versuchen
{
// XSLTProcessor -Objekt definieren
var xsltProcessor = new xsltprozessor ();
XSLTPROCESSOR.importStylesheet (XSLDOC);
var oresultfragment = xsltprocessor.transformToFragment (xmldoc, document);
// Ausgabe des analysierten Textes auf die Seite ausgeben
var odiv = document.getElementById ("Gästebuchpanel");
Odiv.AppendChild (Oresultfragment);
}
fangen (e)
{
Alert ("Fehler: 003");
}
}
else if (typeof window.activexObject! = 'undefined')
{
// var xmldoc = server.createObject ("msxml2.domdocument.4.0");
// Unterstützung des IE Browser
xmldoc = new ActiveXObject ('microsoft.xmldom');
xsldoc = new ActiveXObject ('microsoft.xmldom');
xmldoc.async = false;
XSldoc.async = false;
xmldoc.load ("Gästebuch/Gästebuch.xml");
xsldoc.load ("Gästebuch/Gästebuch.xsl");
GASTBOOKPANEL.INNERHTML = XMLDOC.DOCUMENTELEMENT.TRANSFORMNODE (XSLDOC);
}
anders
{
Alert ("Browser unbekannt!");
}
}
JavaScript DOM Die zweite Art, XSL -Anzeigedaten zu verarbeiten.
Der Hauptcode lautet wie folgt:
Die Codekopie lautet wie folgt:
var xmldoc;
var xsldoc;
// Bestimmen Sie den Browsertyp
if (document.implementation && document.implementation.createdocument)
{
// Mozilla Browser unterstützen
versuchen
{
xmldoc = document.implementation.createdocument ("", "", null);
xmldoc.async = false;
xmldoc.load ("Gästebuch/Gästebuch.xml");
xsldoc = document.implementation.createdocument ("", "", null);
XSldoc.async = false;
xsldoc.load ("Gästebuch/Gästebuch.xsl");
// XSLTProcessor -Objekt definieren
var xsltProcessor = new xsltprozessor ();
XSLTPROCESSOR.importStylesheet (XSLDOC);
// Transformtodocument -Methode
var result = xsltprozessor.transformTodocument (xmldoc);
var xmls = neuer xmlSerializer ();
document.getElementById ("Gästebuchpanel"). Innerhtml = xmls.SerializetoString (Ergebnis);
}
fangen (e)
{
ALERT ("Die XML/XSL -Verarbeitung nicht ausführen");
}
}
else if (typeof window.activexObject! = 'undefined')
{
versuchen
{
// Unterstützung des IE Browser
xmldoc = new ActiveXObject ('msxml2.domdocument');
xsldoc = new ActiveXObject ('msxml2.domdocument');
xmldoc.async = false;
XSldoc.async = false;
xmldoc.load ("Gästebuch/Gästebuch.xml");
xsldoc.load ("Gästebuch/Gästebuch.xsl");
GASTBOOKPANEL.INNERHTML = XMLDOC.DOCUMENTELEMENT.TRANSFORMNODE (XSLDOC);
}
fangen (e)
{
ALERT ("Die XML/XSL -Verarbeitung nicht ausführen");
}
}
anders
{
Alert ("Browser unbekannt!");
}