ฉันเพิ่งใช้ Firefox เพื่อแก้ไขข้อบกพร่องของหน้าเว็บ และพบว่าคำสั่ง Javascript XSLT บางคำสั่งสำหรับการประมวลผล XML รองรับเฉพาะเบราว์เซอร์ IE เท่านั้น บทความบางบทความบนอินเทอร์เน็ตที่แนะนำ JavaScript XSLT เพื่อประมวลผล XML โดยพื้นฐานแล้วจะขึ้นอยู่กับ AJAX
ด้วยความสิ้นหวัง ฉันจึงเขียนฟังก์ชันเล็กๆ ของ Javascript XSLT เพื่อประมวลผลหน้าแสดง XML ตอนนี้ฉันกำลังโพสต์เพื่อแบ่งปันกับทุกคน และหวังว่าคุณจะสามารถให้คำแนะนำแก่ฉันในการปรับปรุงได้
เมื่อใช้วัตถุ XSLTProcessor เพื่อประมวลผล XML ใน Firefox คุณใช้สองวิธีของวัตถุนี้เป็นหลัก:
1. แปลงร่างเป็นแฟรกเมนต์()
2. แปลงเป็นเอกสาร()
โค้ดต่อไปนี้ใช้เมธอดTransformToFragment() เพื่อประมวลผลไฟล์ XML เท่านั้น หากคุณสนใจที่จะใช้ Javascript XSLT เพื่อประมวลผลไฟล์ XML ใน Firefox คุณอาจลองเขียนโค้ดต่อไปนี้ใหม่เพื่อใช้เมธอดTransformToDocument() เพื่อให้บรรลุผล ฟังก์ชั่นการประมวลผล
รหัส Javascript มีดังนี้:
ฟังก์ชั่นเริ่มต้น() {
var xmlDoc;
var xslDoc;
// กำหนดประเภทของเบราว์เซอร์
ถ้า (document.implementation && document.implementation.createDocument)
-
// รองรับเบราว์เซอร์ Mozilla
พยายาม
-
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.async = เท็จ;
xmlDoc.load("สมุดเยี่ยม/guestbook.xml");
-
จับ(จ)
-
alert("ข้อผิดพลาด:001");
-
พยายาม
-
xslDoc = document.implementation.createDocument("", "", null);
xslDoc.async = เท็จ;
xslDoc.load("สมุดเยี่ยมชม/guestbook.xsl");
-
จับ(จ)
-
alert("ข้อผิดพลาด:002");
-
พยายาม
-
//กำหนดวัตถุ XSLTProcessor
var xsltProcessor = XSLTProcessor ใหม่ ();
xsltProcessor.importStylesheet(xslDoc);
var oResultFragment = xsltProcessor.transformToFragment(xmlDoc เอกสาร);
// ส่งออกข้อความที่แยกวิเคราะห์ไปยังหน้า
var oDiv = document.getElementById("guestbookPanel");
oDiv.appendChild(oResultFragment);
-
จับ(จ)
-
alert("ข้อผิดพลาด:003");
-
-
อื่นถ้า (ประเภทของหน้าต่าง ActiveXObject ! = 'ไม่ได้กำหนด')
-
//var xmlDoc=Server.CreateObject("Msxml2.DOMDocument.4.0");
//รองรับเบราว์เซอร์ IE
xmlDoc = ActiveXObject ใหม่ ('Microsoft.XMLDOM');
xslDoc = ActiveXObject ใหม่ ('Microsoft.XMLDOM');
xmlDoc.async = เท็จ;
xslDoc.async = เท็จ;
xmlDoc.load("สมุดเยี่ยม/guestbook.xml");
xslDoc.load("สมุดเยี่ยมชม/guestbook.xsl");
guestbookPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);
-
อื่น
-
alert("ไม่ทราบเบราว์เซอร์!");
-
}
javascript dom เป็นวิธีที่สองในการจัดการข้อมูลที่แสดง XSL
รหัสหลักมีดังนี้:
var xmlDoc;
var xslDoc;
// กำหนดประเภทของเบราว์เซอร์
ถ้า (document.implementation && document.implementation.createDocument)
-
// รองรับเบราว์เซอร์ Mozilla
พยายาม
-
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.async = เท็จ;
xmlDoc.load("สมุดเยี่ยม/guestbook.xml");
xslDoc = document.implementation.createDocument("", "", null);
xslDoc.async = เท็จ;
xslDoc.load("สมุดเยี่ยมชม/guestbook.xsl");
//กำหนดวัตถุ XSLTProcessor
var xsltProcessor = XSLTProcessor ใหม่ ();
xsltProcessor.importStylesheet(xslDoc);
// วิธีการแปลง ToDocument
ผลลัพธ์ var = xsltProcessor.transformToDocument(xmlDoc);
var xmls = XMLSerializer ใหม่ ();
document.getElementById("guestbookPanel").innerHTML = xmls.serializeToString(ผลลัพธ์);
-
จับ(จ)
-
alert("ไม่สามารถประมวลผล xml/xsl ได้");
-
-
อื่นถ้า (ประเภทของหน้าต่าง ActiveXObject ! = 'ไม่ได้กำหนด')
-
พยายาม
-
//รองรับเบราว์เซอร์ IE
xmlDoc = ActiveXObject ใหม่ ('Msxml2.DOMDocument');
xslDoc = ActiveXObject ใหม่ ('Msxml2.DOMDocument');
xmlDoc.async = เท็จ;
xslDoc.async = เท็จ;
xmlDoc.load("สมุดเยี่ยม/guestbook.xml");
xslDoc.load("สมุดเยี่ยมชม/guestbook.xsl");
guestbookPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);
-
จับ(จ)
-
alert("ไม่สามารถประมวลผล xml/xsl ได้");
-
-
อื่น
-
alert("ไม่ทราบเบราว์เซอร์!");
-