Ich habe kürzlich Firefox zum Debuggen von Webseiten verwendet und festgestellt, dass einige Javascript-XSLT-Anweisungen zur Verarbeitung von XML nur IE-Browser unterstützen. Einige Artikel im Internet, die JavaScript XSLT zur Verarbeitung von XML vorstellen, basieren grundsätzlich auf AJAX.
In meiner Verzweiflung habe ich eine kleine Funktion von Javascript XSLT geschrieben, um die XML-Anzeigeseite zu verarbeiten. Jetzt veröffentliche ich es, um es mit allen zu teilen, und ich hoffe, dass Sie mir einige Verbesserungsvorschläge machen können.
Wenn Sie das XSLTProcessor-Objekt zum Verarbeiten von XML in Firefox verwenden, verwenden Sie hauptsächlich zwei Methoden dieses Objekts:
1. transformToFragment().
2. transformToDocument().
Der folgende Code verwendet nur die transformToFragment()-Methode zum Verarbeiten von XML-Dateien. Wenn Sie daran interessiert sind, Javascript XSLT zum Verarbeiten von XML-Dateien in Firefox zu verwenden, können Sie auch versuchen, den folgenden Code umzuschreiben, um dies mit der transformToDocument()-Methode zu erreichen Verarbeitungsfunktion.
Der Javascript-Code lautet wie folgt:
function initialize() {
var xmlDoc;
var xslDoc;
// Bestimmen Sie den Browsertyp
if(document.implementation && document.implementation.createDocument)
{
// Unterstützt den Mozilla-Browser
versuchen
{
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.async = false;
xmlDoc.load("guestbook/guestbook.xml");
}
fangen(e)
{
alarm("error:001");
}
versuchen
{
xslDoc = document.implementation.createDocument("", "", null);
xslDoc.async = false;
xslDoc.load("guestbook/guestbook.xsl");
}
fangen(e)
{
alarm("error:002");
}
versuchen
{
//Definiere XSLTProcessor-Objekt
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
var oResultFragment = xsltProcessor.transformToFragment(xmlDoc,document);
// Den geparsten Text auf der Seite ausgeben
var oDiv = document.getElementById("guestbookPanel");
oDiv.appendChild(oResultFragment);
}
fangen(e)
{
alarm("error:003");
}
}
else if(typeof window.ActiveXObject != 'undefiniert')
{
//var xmlDoc=Server.CreateObject("Msxml2.DOMDocument.4.0");
//Unterstützung des IE-Browsers
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xslDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = false;
xslDoc.async = false;
xmlDoc.load("guestbook/guestbook.xml");
xslDoc.load("guestbook/guestbook.xsl");
guestbookPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);
}
anders
{
alarm("Browser unbekannt!");
}
}
Javascript Dom ist die zweite Möglichkeit, XSL-Anzeigedaten zu verarbeiten.
Der Hauptcode lautet wie folgt:
var xmlDoc;
var xslDoc;
// Bestimmen Sie den Browsertyp
if(document.implementation && document.implementation.createDocument)
{
// Unterstützt den Mozilla-Browser
versuchen
{
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.async = false;
xmlDoc.load("guestbook/guestbook.xml");
xslDoc = document.implementation.createDocument("", "", null);
xslDoc.async = false;
xslDoc.load("guestbook/guestbook.xsl");
//Definiere XSLTProcessor-Objekt
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
// transformToDocument-Methode
var result = xsltProcessor.transformToDocument(xmlDoc);
var xmls = new XMLSerializer();
document.getElementById("guestbookPanel").innerHTML = xmls.serializeToString(result);
}
fangen(e)
{
Alert("XML/XSL-Verarbeitung kann nicht durchgeführt werden");
}
}
else if(typeof window.ActiveXObject != 'undefiniert')
{
versuchen
{
//Unterstützung des IE-Browsers
xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
xslDoc = new ActiveXObject('Msxml2.DOMDocument');
xmlDoc.async = false;
xslDoc.async = false;
xmlDoc.load("guestbook/guestbook.xml");
xslDoc.load("guestbook/guestbook.xsl");
guestbookPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);
}
fangen(e)
{
Alert("XML/XSL-Verarbeitung kann nicht durchgeführt werden");
}
}
anders
{
alarm("Browser unbekannt!");
}