Baru-baru ini saya menggunakan Firefox untuk menyahpepijat halaman web dan mendapati bahawa beberapa pernyataan Javascript XSLT untuk memproses XML hanya menyokong pelayar IE. Beberapa artikel di Internet yang memperkenalkan JavaScript XSLT untuk memproses XML pada asasnya berdasarkan AJAX.
Dalam keadaan terdesak, saya menulis fungsi kecil Javascript XSLT untuk memproses halaman paparan XML. Sekarang saya menyiarkannya untuk dikongsi dengan semua orang, dan saya harap anda boleh memberi saya beberapa cadangan untuk penambahbaikan.
Gunakan objek XSLTPProcessor untuk memproses XML dalam Firefox, terutamanya menggunakan dua kaedah objek ini:
1. transformToFragment().
2. transformToDocument().
Kod berikut hanya menggunakan kaedah transformToFragment() untuk memproses fail XML Jika anda berminat menggunakan Javascript XSLT untuk memproses fail XML dalam Firefox, anda juga boleh cuba menulis semula kod berikut untuk menggunakan kaedah transformToDocument(). fungsi pemprosesan.
Kod Javascript adalah seperti berikut:
// 判断浏览器的类型
if(document.implementation && document.implementation.createDocument)
{
// 支持Mozilla浏览器
cuba
{
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.async = palsu;
xmlDoc.load("buku tetamu/buku tetamu.xml");
}
tangkap(e)
{
makluman("ralat:001");
}
cuba
{
xslDoc = document.implementation.createDocument("", "", null);
xslDoc.async = palsu;
xslDoc.load("buku tetamu/buku tetamu.xsl");
}
tangkap(e)
{
makluman("ralat:002");
}
cuba
{
// 定义XSLTPProcessor对象
var xsltProcessor = XSLTPProcessor();
xsltProcessor.importStylesheet(xslDoc);
var oResultFragment = xsltProcessor.transformToFragment(xmlDoc,document);
// 将解析过的文本输出到页面
var oDiv = document.getElementById("guestbookPanel");
oDiv.appendChild(oResultFragment);
}
tangkap(e)
{
makluman("ralat:003");
}
}
else if(typeof window.ActiveXObject != 'undefined')
{
//var xmlDoc=Server.CreateObject("Msxml2.DOMDocument.4.0");
// 支持IE浏览器
xmlDoc = ActiveXObject baharu('Microsoft.XMLDOM');
xslDoc = ActiveXObject baharu('Microsoft.XMLDOM');
xmlDoc.async = palsu;
xslDoc.async = palsu;
xmlDoc.load("buku tetamu/buku tetamu.xml");
xslDoc.load("buku tetamu/buku tetamu.xsl");
guestbookPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);
}
lain
{
alert("Pelayar tidak diketahui!");
}
}
javascript dom ialah cara kedua untuk memproses data paparan XSL.
Kod utama adalah seperti berikut: