Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การแยกวิเคราะห์ XML ด้วย DOM API ใน Python


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 มาตรฐาน