การตรวจสอบ XML DOM
- หน้าก่อนหน้า ต้นไม้ของตัวเอง DOM
- หน้าต่อไป การโหลด DOM
เบราเซอร์ส่วนใหญ่มีประมวลเกณฑ์ XML ภายในตัวเบราเซอร์เพื่ออ่านและปฏิบัติงาน XML
ประมวลเกณฑ์แปลง XML ให้เป็นโอบเจกต์ที่สามารถเข้าถึงได้ด้วย JavaScript
ตัวอย่าง
ตัวอย่างที่เสนอโดย CodeW3C.com มีความเป็นอิสระต่อเบราเซอร์และชาติและระบบปฏิบัติการ ตัวอย่างนี้สามารถปฏิบัติงานในเบราเซอร์สมัยใหม่ทุกตัว
วิเคราะห์ XML
เบราเซอร์ทุกตัวสมัยใหม่ต่างก็มีประมวลเกณฑ์ XML ภายในตัวเบราเซอร์เพื่ออ่านและปฏิบัติงาน XML
ประมวลเกณฑ์อ่าน XML เข้าหลังความจำ และแปลงมันเป็น XML DOM โอบเจกต์ที่สามารถถึงได้ด้วย JavaScript
Microsoft XML ประมวลเกณฑ์มีความแตกต่างจากประมวลเกณฑ์ของเบราเซอร์อื่นๆ มีความสนใจ Microsoft ประมวลเกณฑ์สนับสนุนการโหลดไฟล์ XML และข้อความ XML (ข้อความ) ในขณะที่เบราเซอร์อื่นๆ ใช้ประมวลเกณฑ์แยกตัว แต่ทั้งหมดประมวลเกณฑ์มีฟังก์ชันเพื่อวิเคราะห์ต้นไม้ XML ที่วิเคราะห์、เข้าถึง、และเพิ่มหรือลบต้น
ในบทความนี้,เราจะให้คุณเรียนรู้ว่าด้วยวิธีที่จะสร้างสคริปต์ที่สามารถปฏิบัติงานใน IE และเบราเซอร์อื่นๆ
โหลด XML ผ่าน Microsoft XML ประมวลเกณฑ์
Microsoft XML ประมวลเกณฑ์ถูกฝังระหว่าง Microsoft Internet Explorer 5 และสูงกว่า
รหัส JavaScript ต่อไปนี้นำแฟ้ม XML ("books.xml) โหลดตัวตรวจสอบ:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.load("books.xml");
รายละเอียดรหัส:
- บรรทัดแรกสร้าง Microsoft XML โอบเจกต์ว่าง
- บรรทัดที่สองปิดการโหลดแบบอัตโนมัติ ดังนั้นตัวตรวจสอบจะไม่มีส่วนแสดงภาพที่ยังไม่หลังจากที่เอกสารหลักบรรจุครบ
- บรรทัดที่สามบอกให้ตัวตรวจสอบนำเข้าเอกสารที่ชื่อ "books.xml"
รหัส JavaScript ต่อไปนี้นำข้อความที่ชื่อ txt ลงตัวตรวจสอบ:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(txt);
หมายเหตุ:loadXML() วิธีนี้ใช้สำหรับโหลดข้อความ (ข้อความ),และ load() ใช้สำหรับโหลดไฟล์。
ตัวตรวจสอบ XML ใน Firefox และเบราเซอร์อื่น
รหัส JavaScript ต่อไปนี้นำแฟ้ม XML ("books.xml) โหลดตัวตรวจสอบ:
xmlDoc=document.implementation.createDocument("","",null); xmlDoc.async="false"; xmlDoc.load("books.xml");
รายละเอียดรหัส:
- บรรทัดที่หนึ่งสร้างแฟ้ม XML ลงแบบละเอียด
- บรรทัดที่สองปิดการโหลดแบบอัตโนมัติ ดังนั้นตัวตรวจสอบจะไม่มีส่วนแสดงภาพที่ยังไม่หลังจากที่เอกสารหลักบรรจุครบ
- บรรทัดที่สามบอกให้ตัวตรวจสอบนำเข้าเอกสารที่ชื่อ "books.xml"
รหัส JavaScript ต่อไปนี้นำข้อความที่ชื่อ txt ลงตัวตรวจสอบ:
parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml");
รายละเอียดรหัส:
- บรรทัดที่หนึ่งสร้างแฟ้ม XML ลงแบบละเอียด
- บรรทัดที่สองบอกให้ตัวตรวจสอบนำเข้าข้อความที่ชื่อ txt
หมายเหตุ:Internet Explorer ใช้ loadXML() เทคนิคมีอยู่ที่ DOMParser DOMParser อ็อบเจ็กท์
ตรวจสอบแฟ้ม XML - ตัวอย่างที่เผยแพร่ทาง CodeW3C.com
ตัวอย่างด้านต่อไปนี้ของ XML ลงแบบละเอียด ("books.xml) โหลดตัวตรวจสอบ XML:
<html> <body> <script type="text/javascript"> try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); } catch(e) { try //Firefox, Mozilla, Opera, etc. { xmlDoc=document.implementation.createDocument("","",null); } catch(e) {alert(e.message)} } try { xmlDoc.async=false; xmlDoc.load("books.xml"); document.write("xmlDoc ได้โหลดแล้ว พร้อมที่จะใช้งาน"); } catch(e) {alert(e.message)} </script> </body> </html>
Error: Access Across Domains
ด้วยเหตุผลด้านความปลอดภัย นโยบายของเบราเซอร์ในยุคปัจจุบันไม่อนุญาตให้เข้าถึงระหว่างโดเมน
นี่หมายความว่า เว็บไซต์และแฟ้ม XML ที่มันพยายามโหลด ต้องอยู่ในเซิร์ฟเวอร์เดียวกัน
ตัวอย่างที่เปิดแฟ้ม XML ใน CodeW3C.com ตั้งอยู่ในโดเมน CodeW3C.com
หากคุณตั้งใจที่จะใช้ตัวอย่างดังกล่าวบนเว็บไซต์ของตัวเอง คุณจะต้องจัดเก็บแฟ้ม XML ในเซิร์ฟเวอร์ของตัวเอง ไม่เช่นนั้น xmlDoc.load() จะสร้างข้อผิดพลาด "Access is denied"。
ตรวจสอบ XML ตัวย่อ - ตัวอย่างที่เผยแพร่ทาง CodeW3C.com
ด้านต่อไปนี้เป็นรหัสที่โหลดและตรวจสอบ XML ตัวย่อ
<html> <body> <script type="text/javascript"> text="<bookstore>" text=text+"<book>"; text=text+"<title>Harry Potter</title>"; text=text+"<author>J K. Rowling</author>"; text=text+"<year>2005</year>"; text=text+"</book>"; text=text+"</bookstore>"; try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(text); } catch(e) { try //Firefox, Mozilla, Opera, etc. { parser=new DOMParser(); xmlDoc=parser.parseFromString(text,"text/xml"); } catch(e) {alert(e.message)} } document.write("xmlDoc ได้โหลดแล้ว พร้อมที่จะใช้งาน"); </script> </body> </html>
หมายเหตุ:Internet Explorer ใช้วิธี loadXML() ในการแปลง XML ตัวเลข ในขณะที่บราวเซอร์อื่นใช้ DOMParser องค์ประกอบ.
- หน้าก่อนหน้า ต้นไม้ของตัวเอง DOM
- หน้าต่อไป การโหลด DOM