Document Object Model ("DOM") เป็น API ข้ามภาษาจาก World Wide Web Consortium (W3C) สำหรับการเข้าถึงและแก้ไขเอกสาร XML
DOM มีประโยชน์อย่างมากสำหรับแอปพลิเคชันการเข้าถึงโดยสุ่ม SAX อนุญาตให้คุณดูเอกสารได้ครั้งละหนึ่งบิตเท่านั้น หากคุณกำลังดูองค์ประกอบ SAX หนึ่ง คุณจะไม่สามารถเข้าถึงองค์ประกอบอื่นได้
นี่เป็นวิธีที่ง่ายที่สุดในการโหลดเอกสาร XML อย่างรวดเร็วและสร้างอ็อบเจ็กต์ minidom โดยใช้โมดูล xml.dom ออบเจ็กต์ minidom จัดเตรียมวิธี parser อย่างง่ายที่สร้างแผนผัง DOM จากไฟล์ XML ได้อย่างรวดเร็ว
วลีตัวอย่างเรียกฟังก์ชัน parse( file [,parser] ) ของอ็อบเจ็กต์ minidom เพื่อแยกวิเคราะห์ไฟล์ XML ที่กำหนดโดยไฟล์ลงในออบเจกต์ทรี DOM
#!/usr/bin/python from xml.dom.minidom import parse import xml.dom.minidom # Open XML document using minidom parser DOMTree = xml.dom.minidom.parse("movies.xml") collection = DOMTree.documentElement if collection.hasAttribute("shelf"): print "Root element : %s" % collection.getAttribute("shelf") # Get all the movies in the collection movies = collection.getElementsByTagName("movie") # Print detail of each movie. for movie in movies: print "*****Movie*****" if movie.hasAttribute("title"): print "Title: %s" % movie.getAttribute("title") type = movie.getElementsByTagName('type')[0] print "Type: %s" % type.childNodes[0].data format = movie.getElementsByTagName('format')[0] print "Format: %s" % format.childNodes[0].data rating = movie.getElementsByTagName('rating')[0] print "Rating: %s" % rating.childNodes[0].data description = movie.getElementsByTagName('description')[0] print "Description: %s" % description.childNodes[0].data
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -
Root element : New Arrivals *****Movie***** Title: Enemy Behind Type: War, Thriller Format: DVD Rating: PG Description: Talk about a US-Japan war *****Movie***** Title: Transformers Type: Anime, Science Fiction Format: DVD Rating: R Description: A schientific fiction *****Movie***** Title: Trigun Type: Anime, Action Format: DVD Rating: PG Description: Vash the Stampede! *****Movie***** Title: Ishtar Type: Comedy Format: VHS Rating: PG Description: Viewable boredom
สำหรับรายละเอียดทั้งหมดเกี่ยวกับเอกสาร DOM API โปรดดูที่ Python API มาตรฐาน