การตรวจสอบ XML DOM

เบราเซอร์ส่วนใหญ่มีประมวลเกณฑ์ XML ภายในตัวเบราเซอร์เพื่ออ่านและปฏิบัติงาน XML

ประมวลเกณฑ์แปลง XML ให้เป็นโอบเจกต์ที่สามารถเข้าถึงได้ด้วย JavaScript

ตัวอย่าง

ตัวอย่างที่เสนอโดย CodeW3C.com มีความเป็นอิสระต่อเบราเซอร์และชาติและระบบปฏิบัติการ ตัวอย่างนี้สามารถปฏิบัติงานในเบราเซอร์สมัยใหม่ทุกตัว

โหลดและวิเคราะห์ไฟล์ XML
โหลดและวิเคราะห์ข้อความ XML

วิเคราะห์ 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>

TIY

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>

TIY

หมายเหตุ:Internet Explorer ใช้วิธี loadXML() ในการแปลง XML ตัวเลข ในขณะที่บราวเซอร์อื่นใช้ DOMParser องค์ประกอบ.