Rumah  >  Artikel  >  hujung hadapan web  >  Javascript XSLT yang serasi dengan Firefox memproses fail XML_petua javascript

Javascript XSLT yang serasi dengan Firefox memproses fail XML_petua javascript

WBOY
WBOYasal
2016-05-16 16:22:541749semak imbas

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:

Salin kod Kod adalah seperti berikut:

function initialize() {
    var xmlDoc;
    var xslDoc;

    // 判断浏览器的类型
    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:

Salin kod Kod adalah seperti berikut:

var xmlDoc;
var xslDoc;
// Tentukan jenis penyemak imbas
if(document.implementation && document.implementation.createDocument)
{
// Sokong pelayar Mozilla
cuba
{
xmlDoc = document.implementation.createDocument("", "", null); xmlDoc.async = palsu;
xmlDoc.load("buku tetamu/buku tetamu.xml");
xslDoc = document.implementation.createDocument("", "", null);
xslDoc.async = palsu; xslDoc.load("buku tetamu/buku tetamu.xsl"); // Tentukan objek XSLTPProcessor
var xsltProcessor = XSLTPProcessor();
xsltProcessor.importStylesheet(xslDoc);
// kaedah transformToDocument
var result = xsltProcessor.transformToDocument(xmlDoc);
var xmls = XMLSerializer baharu();
Document.getElementById("guestbookPanel").innerHTML = xmls.serializeToString(result);
}
tangkap(e)
{
alert("Tidak dapat melakukan pemprosesan xml/xsl");
}
}
else if(typeof window.ActiveXObject != 'undefined')
{
cuba
{
//Sokong pelayar IE
xmlDoc = ActiveXObject baharu('Msxml2.DOMDocument');
xslDoc = ActiveXObject baharu('Msxml2.DOMDocument'); 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);
}
tangkap(e)
{
alert("Tidak dapat melakukan pemprosesan xml/xsl");
}
}
lain
{
alert("Pelayar tidak diketahui!");
}


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn