Phương thức này cũng dùng để tạo một SAX parser và để phân tích cú pháp XML string đã cho.
xml.sax.parseString(xmlstring, contenthandler[, errorhandler])
Chi tiết về tham số:
import xml.sax class Phim BoHandler( xml.sax.ContentHandler ): def __init__(self): self.CurrentData = "" self.type = "" self.format = "" self.year = "" self.rating = "" self.stars = "" self.description = "" # Goi khi mot phan tu bat dau def startElement(self, tag, attributes): self.CurrentData = tag if tag == "movie": print "*****Phim Bo*****" title = attributes["title"] print "Ten Phim:", title # Goi khi mot phan tu ket thuc def endElement(self, tag): if self.CurrentData == "type": print "The loai:", self.type elif self.CurrentData == "format": print "Dinh dang:", self.format elif self.CurrentData == "year": print "Nam:", self.year elif self.CurrentData == "rating": print "Rating:", self.rating elif self.CurrentData == "stars": print "Dien vien:", self.stars elif self.CurrentData == "description": print "Gioi thieu:", self.description self.CurrentData = "" # Goi khi mot ky tu duoc doc def characters(self, content): if self.CurrentData == "type": self.type = content elif self.CurrentData == "format": self.format = content elif self.CurrentData == "year": self.year = content elif self.CurrentData == "rating": self.rating = content elif self.CurrentData == "stars": self.stars = content elif self.CurrentData == "description": self.description = content if ( __name__ == "__main__"): # Tao mot XMLReader parser = xml.sax.make_parser() # Tat cac namepsace parser.setFeature(xml.sax.handler.feature_namespaces, 0) # ghi de ContextHandler mac dinh Handler = Phim BoHandler() parser.setContentHandler( Handler ) parser.parse("movies.xml")Phân tích cú pháp XML với DOM APIs
DOM thực sự hữu ích với các ứng dụng truy cập ngẫu nhiên. SAX chỉ cho phép bạn xem một bit của tài liệu tại một thời điểm và không có quyền truy cập khác.
Dưới đây là cách nhanh nhất để tải một XML document và để tạo một đối tượng minidom bởi sử dụng xml.dom Module. Đối tượng minidom cung cấp một phương thức parser đơn giản mà tạo một DOM tree một cách nhanh chóng từ XML file.
Hàm parse(file [,parser]) của đối tượng minidom để phân tích cú pháp XML file đã được chỉ rõ bởi file bên trong một đối tượng DOM tree.
from xml.dom.minidom import parse import xml.dom.minidom # Mo mot tai lieu XML document boi su dung minidom parser DOMTree = xml.dom.minidom.parse("movies.xml") collection = DOMTree.documentElement if collection.hasAttribute("shelf"): print "Root element : %s" % collection.getAttribute("shelf") # Lay tat ca phim trong bo suu tap movies = collection.getElementsByTagName("movie") # in chi tiet ve moi phim. for movie in movies: print "*****Phim Bo*****" if movie.hasAttribute("title"): print "Ten Phim: %s" % movie.getAttribute("title") type = movie.getElementsByTagName('type')[0] print "The loai: %s" % type.childNodes[0].data format = movie.getElementsByTagName('format')[0] print "Dinh dang: %s" % format.childNodes[0].data rating = movie.getElementsByTagName('rating')[0] print "Rating: %s" % rating.childNodes[0].data description = movie.getElementsByTagName('description')[0] print "Gioi thieu: %s" % description.childNodes[0].data
» Tin mới nhất:
» Các tin khác: