XML DOM ความแตกต่างบราวเซอร์
- หน้าก่อนหน้า การเดินทางตัวองค์ประกอบ DOM
- หน้าต่อไป ตำแหน่งตัวองค์ประกอบ DOM
บราวเซอร์ต่างๆ จัดการตำแหน่งของตัวอักษรว่างใน XML DOM ต่างๆ
ตัวอย่าง
ตัวอย่างด้านล่างใช้แฟ้ม XML books.xml。
ฟังก์ชัน loadXMLDoc()ที่ตั้งอยู่ด้านนอก JavaScript ใช้โหลดแฟ้ม XML
- แสดงความยาวของตำแหน่งสาย
- ตัวอย่างนี้แสดงความยาวของตำแหน่งสาย
- ละเลยตัวองค์ประกอบข้อความว่างระหว่าง
- ตัวอย่างนี้ตรวจสอบตำแหน่ง nodeType และจะจัดการกับตำแหน่งสาขาเท่านั้น
ความแตกต่างระหว่างบราวเซอร์ในการแจกแบ่ง DOM
บราวเซอร์ทุกตัวในยุคปัจจุบันสนับสนุนนวมาตรฐาน W3C DOM
อย่างไรก็ตาม มีความแตกต่างระหว่างบราวเซอร์ต่างๆ สำคัญสองจุด
- วิธีการโหลด XML
- วิธีการจัดการช่องว่างและช่องว่างแบบ Enter
ใน “การแจกแบ่ง XML DOM” บทบาทนี้ ได้มีการอธิบายถึงวิธีการโหลด XML ต่างๆ
ในบทบาทนี้ เราจะเล่าถึงวิธีการจัดการช่องว่างและช่องว่างแบบ Enter ต่างๆ
DOM - ช่องว่างและช่องว่างแบบ Enter
XML มักมีจุดของการหยุดตัวหรือช่องว่างระหว่างตำแหน่งของตัวอักษรสาระ ซึ่งเป็นสถานการณ์ที่เกิดขึ้นบ่อยครั้งเมื่อใช้บรรณาธิการที่เรียบเรียงง่าย (เช่น Notepad)
ตัวอย่างด้านล่าง (แก้ไขด้ด้วย Notepad) มี CR/LF ระหว่างแถวและมีออกเปล่าสองหลายเรืองก่อนหน้าทุกตามแม่ขึ้น
<book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
Firefox และบราวเซอร์บางตัวอื่นจะจัดการความว่างเปล่าหรือช่องว่างแบบ Enter แบบ Line Feed ในตำแหน่งของตัวอักษรสาระ ในขณะที่ Internet Explorer จะไม่ทำเช่นนั้น
บทความใต้นี้แสดงให้เห็นจำนวนตัวองค์ประกอบลูกที่มีในตัวองค์ประกอบราก (books.xml):
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; document.write("Number of child nodes: " + x.length);
ตัวอย่างที่อธิบาย:
- ด้วยการใช้ loadXMLDoc() ใส่ "books.xml" โหลด xmlDoc
- เรียกมายอดตัวองค์ประกอบลูกของตัวองค์ประกอบราก
- ออกมายอดตัวองค์ประกอบลูก
ผลที่ได้ขึ้นอยู่กับบราวเซอร์ที่ใช้ Firefox ออกมา 9 และ IE ออกมา 4
ละเลยตัวองค์ประกอบข้อความว่างระหว่าง
ถ้าต้องการละเลยตัวองค์ประกอบข้อความว่างระหว่างตัวองค์ประกอบ ต้องตรวจสอบประเภทตัวองค์ประกอบ ประเภทตัวองค์ประกอบของตัวองค์ประกอบคือ 1:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {// กระทำเพียงตัวองค์ประกอบ document.write(x[i].nodeName); document.write("<br />"); } }
ตัวอย่างที่อธิบาย:
- ด้วยการใช้ loadXMLDoc() ใส่ "books.xml" โหลด xmlDoc
- เรียกมายอดตัวองค์ประกอบลูกของตัวองค์ประกอบราก
- ตรวจสอบประเภทตัวองค์ประกอบของทุกตัวองค์ประกอบลูก ถ้าประเภทตัวองค์ประกอบคือ "1" แล้ว มันคือตัวองค์ประกอบ
TIY (ง่าย) หรือ TIY (เต็ม)
- หน้าก่อนหน้า การเดินทางตัวองค์ประกอบ DOM
- หน้าต่อไป ตำแหน่งตัวองค์ประกอบ DOM