Baru -baru ini, saya menggunakan Firefox untuk men -debug halaman web dan menemukan bahwa beberapa pernyataan XSLT JavaScript yang memproses XML hanya mendukung browser yaitu. Beberapa artikel di internet yang memperkenalkan JavaScript XSLT untuk memproses XML pada dasarnya didasarkan pada AJAX.
Tidak berdaya, saya menulis fungsi kecil dari javascript XSLT memproses halaman tampilan XML. Sekarang saya memposting untuk berbagi dengan Anda, saya harap Anda dapat memberi saya beberapa saran untuk perbaikan.
Di Firefox, menggunakan objek XSLTProcessor untuk memproses XML, terutama menggunakan dua metode objek ini:
1. Transformtofragment ().
2. TransformTodocument ().
Kode berikut hanya menggunakan metode transformtofragment () untuk mengimplementasikan pemrosesan file XML. Jika Anda tertarik menggunakan JavaScript XSLT untuk memproses file XML di Firefox, Anda mungkin juga mencoba untuk menulis ulang kode berikut menjadi fungsi pemrosesan yang diimplementasikan menggunakan metode transformtodocument ().
Kode JavaScript adalah sebagai berikut:
Salinan kode adalah sebagai berikut:
fungsi initialize () {
var xmldoc;
var xsldoc;
// Tentukan jenis browser
if (document.implementation && document.implementation.createdocument)
{
// Dukung browser mozilla
mencoba
{
xmldoc = document.implementation.createdocument ("", "", null);
xmldoc.async = false;
xmldoc.load ("Buku Tamu/Buku Tamu.xml");
}
Tangkap (E)
{
peringatan ("Kesalahan: 001");
}
mencoba
{
xsldoc = document.implementation.createdocument ("", "", null);
xsldoc.async = false;
xsldoc.load ("Buku Tamu/Buku Tamu.xsl");
}
Tangkap (E)
{
peringatan ("Kesalahan: 002");
}
mencoba
{
// Tentukan objek xsltprocessor
var xsltprocessor = xsltprocessor baru ();
xsltprocessor.importstylesheet (xsldoc);
var oresultFragment = xsltprocessor.transformtofragment (xmldoc, dokumen);
// keluarkan teks parsed ke halaman
var odiv = document.getElementById ("GuestBookPanel");
odiv.appendchild (oresultFragment);
}
Tangkap (E)
{
peringatan ("Kesalahan: 003");
}
}
lain jika (typeof window.activexObject! = 'tidak terdefinisi')
{
// var xmldoc = server.CreateObject ("msxml2.domdocument.4.0");
// Dukungan IE Browser
xmldoc = ActiveXObject baru ('microsoft.xmldom');
xsldoc = new ActiveXObject ('microsoft.xmldom');
xmldoc.async = false;
xsldoc.async = false;
xmldoc.load ("Buku Tamu/Buku Tamu.xml");
xsldoc.load ("Buku Tamu/Buku Tamu.xsl");
GuestBookPanel.InnerHTML = XMLDOC.DocumentElement.TransFormNode (XSLDOC);
}
kalau tidak
{
alert ("Browser Unknown!");
}
}
JavaScript DOM Cara kedua untuk memproses data tampilan XSL.
Kode utamanya adalah sebagai berikut:
Salinan kode adalah sebagai berikut:
var xmldoc;
var xsldoc;
// Tentukan jenis browser
if (document.implementation && document.implementation.createdocument)
{
// Dukung browser mozilla
mencoba
{
xmldoc = document.implementation.createdocument ("", "", null);
xmldoc.async = false;
xmldoc.load ("Buku Tamu/Buku Tamu.xml");
xsldoc = document.implementation.createdocument ("", "", null);
xsldoc.async = false;
xsldoc.load ("Buku Tamu/Buku Tamu.xsl");
// Tentukan objek xsltprocessor
var xsltprocessor = xsltprocessor baru ();
xsltprocessor.importstylesheet (xsldoc);
// Metode TransformTodocument
var result = xsltprocessor.transformtodocument (xmldoc);
var xmls = xmlserializer baru ();
document.getElementById ("GuestBookPanel"). BinnHTML = xmls.serializetoString (hasil);
}
Tangkap (e)
{
waspada ("Tidak dapat melakukan pemrosesan XML/XSL");
}
}
lain jika (typeof window.activexObject! = 'tidak terdefinisi')
{
mencoba
{
// Dukungan IE Browser
xmldoc = ActiveXObject baru ('msxml2.domdocument');
XSLDOC = ActiveXObject baru ('msxml2.domdocument');
xmldoc.async = false;
xsldoc.async = false;
xmldoc.load ("Buku Tamu/Buku Tamu.xml");
xsldoc.load ("Buku Tamu/Buku Tamu.xsl");
GuestBookPanel.InnerHTML = XMLDOC.DocumentElement.TransFormNode (XSLDOC);
}
Tangkap (E)
{
waspada ("Tidak dapat melakukan pemrosesan XML/XSL");
}
}
kalau tidak
{
alert ("Browser Unknown!");
}