Saya baru-baru ini menggunakan Firefox untuk men-debug halaman web dan menemukan bahwa beberapa pernyataan Javascript XSLT untuk memproses XML hanya mendukung browser IE. Beberapa artikel di Internet yang memperkenalkan JavaScript XSLT untuk memproses XML pada dasarnya didasarkan pada AJAX.
Dalam keputusasaan, saya menulis fungsi kecil Javascript XSLT untuk memproses tampilan halaman XML. Sekarang saya mempostingnya untuk dibagikan kepada semua orang, dan saya harap Anda dapat memberi saya beberapa saran untuk perbaikan.
Saat menggunakan objek XSLTProcessor untuk memproses XML di Firefox, Anda terutama menggunakan dua metode objek ini:
1.transformasiToFragment().
2. transformToDocument().
Kode berikut hanya menggunakan metode transformToFragment() untuk memproses file XML. Jika Anda tertarik menggunakan Javascript XSLT untuk memproses file XML di Firefox, Anda sebaiknya mencoba menulis ulang kode berikut untuk menggunakan metode transformToDocument() untuk mencapai hasil tersebut. fungsi pemrosesan.
Kode Javascriptnya adalah sebagai berikut:
function inisialisasi() {
var xmlDok;
var xslDoc;
// Tentukan jenis browser
if(dokumen.implementasi && dokumen.implementasi.buatDokumen)
{
// Mendukung peramban Mozilla
mencoba
{
xmlDoc = dokumen.implementasi.createDocument("", "", null);
xmlDoc.async = salah;
xmlDoc.load("buku tamu/buku tamu.xml");
}
menangkap(e)
{
peringatan("kesalahan:001");
}
mencoba
{
xslDoc = dokumen.implementasi.createDocument("", "", null);
xslDoc.async = salah;
xslDoc.load("buku tamu/buku tamu.xsl");
}
menangkap(e)
{
peringatan("kesalahan:002");
}
mencoba
{
//Definisikan objek XSLTProcessor
var xsltProcessor = XSLTProcessor baru();
xsltProcessor.importStylesheet(xslDoc);
var oResultFragment = xsltProcessor.transformToFragment(xmlDoc,dokumen);
// Keluarkan teks yang telah diurai ke halaman
var oDiv = document.getElementById("guestbookPanel");
oDiv.appendChild(oResultFragment);
}
menangkap(e)
{
peringatan("kesalahan:003");
}
}
else if(typeof window.ActiveXObject != 'tidak terdefinisi')
{
//var xmlDoc=Server.CreateObject("Msxml2.DOMDocument.4.0");
//Mendukung peramban IE
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xslDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = salah;
xslDoc.async = salah;
xmlDoc.load("buku tamu/buku tamu.xml");
xslDoc.load("buku tamu/buku tamu.xsl");
buku tamuPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);
}
kalau tidak
{
alert("Peramban tidak diketahui!");
}
}
javascript dom adalah cara kedua untuk menangani data tampilan XSL.
Kode utamanya adalah sebagai berikut:
var xmlDoc;
var xslDoc;
// Tentukan jenis browser
if(dokumen.implementasi && dokumen.implementasi.buatDokumen)
{
// Mendukung peramban Mozilla
mencoba
{
xmlDoc = dokumen.implementasi.createDocument("", "", null);
xmlDoc.async = salah;
xmlDoc.load("buku tamu/buku tamu.xml");
xslDoc = dokumen.implementasi.createDocument("", "", null);
xslDoc.async = salah;
xslDoc.load("buku tamu/buku tamu.xsl");
//Definisikan objek XSLTProcessor
var xsltProcessor = XSLTProcessor baru();
xsltProcessor.importStylesheet(xslDoc);
// metode transformToDocument
var hasil = xsltProcessor.transformToDocument(xmlDoc);
var xmls = XMLSerializer baru();
document.getElementById("guestbookPanel").innerHTML = xmls.serializeToString(hasil);
}
menangkap(e)
{
alert("Tidak dapat melakukan pemrosesan xml/xsl");
}
}
else if(typeof window.ActiveXObject != 'tidak terdefinisi')
{
mencoba
{
//Mendukung peramban IE
xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
xslDoc = new ActiveXObject('Msxml2.DOMDocument');
xmlDoc.async = salah;
xslDoc.async = salah;
xmlDoc.load("buku tamu/buku tamu.xml");
xslDoc.load("buku tamu/buku tamu.xsl");
buku tamuPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);
}
menangkap(e)
{
alert("Tidak dapat melakukan pemrosesan xml/xsl");
}
}
kalau tidak
{
alert("Peramban tidak diketahui!");
}