Python
Halaman SebelumnyaHalaman Berikutnya
XML adalah bahasa open source portabel yang memungkinkan pemrogram mengembangkan aplikasi yang dapat dibaca oleh aplikasi lain, terlepas dari sistem operasi dan/atau bahasa pengembangan.
Extensible Markup Language (XML) adalah bahasa markup seperti HTML atau SGML. Ini direkomendasikan oleh World Wide Web Consortium dan tersedia sebagai standar terbuka.
XML sangat berguna untuk melacak data dalam jumlah kecil hingga menengah tanpa memerlukan tulang punggung berbasis SQL.
Pustaka standar Python menyediakan serangkaian antarmuka yang minimal namun berguna untuk bekerja dengan XML.
Dua API yang paling dasar dan digunakan secara luas untuk data XML adalah antarmuka SAX dan DOM.
API Sederhana untuk XML (SAX) Di sini, Anda mendaftarkan panggilan balik untuk acara yang menarik dan kemudian membiarkan pengurai melanjutkan melalui dokumen. Ini berguna ketika dokumen Anda berukuran besar atau Anda memiliki keterbatasan memori, ini akan mem-parsing file saat dibaca dari disk dan seluruh file tidak pernah disimpan dalam memori.
API Model Objek Dokumen (DOM) Ini adalah rekomendasi World Wide Web Consortium dimana seluruh file dibaca ke dalam memori dan disimpan dalam bentuk hierarkis (berbasis pohon) untuk mewakili semua fitur dokumen XML.
SAX jelas tidak dapat memproses informasi secepat DOM ketika bekerja dengan file besar. Di sisi lain, menggunakan DOM secara eksklusif dapat benar-benar mematikan sumber daya Anda, terutama jika digunakan pada banyak file kecil.
SAX bersifat read-only, sedangkan DOM memungkinkan perubahan pada file XML. Karena kedua API yang berbeda ini benar-benar saling melengkapi, tidak ada alasan mengapa Anda tidak dapat menggunakan keduanya untuk proyek besar.
Untuk semua contoh kode XML, mari gunakan file XML sederhana movies.xml sebagai masukan
<collection shelf="New Arrivals"> <movie title="Enemy Behind"> <type>War, Thriller</type> <format>DVD</format> <year>2003</year> <rating>PG</rating> <stars>10</stars> <description>Talk about a US-Japan war</description> </movie> <movie title="Transformers"> <type>Anime, Science Fiction</type> <format>DVD</format> <year>1989</year> <rating>R</rating> <stars>8</stars> <description>A schientific fiction</description> </movie> <movie title="Trigun"> <type>Anime, Action</type> <format>DVD</format> <episodes>4</episodes> <rating>PG</rating> <stars>10</stars> <description>Vash the Stampede!</description> </movie> <movie title="Ishtar"> <type>Comedy</type> <format>VHS</format> <rating>PG</rating> <stars>2</stars> <description>Viewable boredom</description> </movie> </collection>
SAX adalah antarmuka standar untuk penguraian XML yang digerakkan oleh peristiwa. Parsing XML dengan SAX umumnya mengharuskan Anda untuk membuat ContentHandler Anda sendiri dengan mensubklasifikasikan xml.sax.ContentHandler.
ContentHandler . Anda menangani tag dan atribut tertentu dari rasa XML Anda. Objek ContentHandler menyediakan metode untuk menangani berbagai peristiwa penguraian. Parser miliknya memanggil metode ContentHandler saat mem-parsing file XML.
Metode startDocument dan endDocument dipanggil di awal dan akhir file XML. Metode karakter(teks) dilewatkan data karakter file XML melalui teks parameter.
ContentHandler dipanggil di awal dan akhir setiap elemen. Jika parser tidak dalam mode namespace, metode startElement(tag, atribut) dan endElement(tag) disebut; jika tidak, metode yang sesuai startElementNS dan endElementNS disebut. Di sini, tag adalah tag elemen, dan atribut adalah objek Atribut.
Berikut adalah metode penting lainnya untuk dipahami sebelum melanjutkan −
Metode berikut membuat objek parser baru dan mengembalikannya. Objek parser yang dibuat akan menjadi jenis parser pertama yang ditemukan sistem.
xml.sax.make_parser( [parser_list] )
Berikut adalah detail dari parameter
daftar_parser Argumen opsional yang terdiri dari daftar parser untuk digunakan yang semuanya harus mengimplementasikan metode make_parser.
Metode berikut membuat parser SAX dan menggunakannya untuk mengurai dokumen.
xml.sax.parse( xmlfile, contenthandler[, errorhandler])
Berikut adalah detail dari parameter
filexml Ini adalah nama file XML yang akan dibaca.
penangan konten Ini harus berupa objek ContentHandler.
penangan kesalahan Jika ditentukan, errorhandler harus berupa objek SAX ErrorHandler.
Ada satu metode lagi untuk membuat parser SAX dan mengurai string XML specified yang ditentukan .
xml.sax.parseString(xmlstring, contenthandler[, errorhandler])
Berikut adalah detail dari parameter
xmlstring Ini adalah nama dari string XML untuk dibaca.
penangan konten Ini harus berupa objek ContentHandler.
penangan kesalahan Jika ditentukan, errorhandler harus berupa objek SAX ErrorHandler.
#!/usr/bin/python import xml.sax class MovieHandler( xml.sax.ContentHandler ): def __init__(self): self.CurrentData = "" self.type = "" self.format = "" self.year = "" self.rating = "" self.stars = "" self.description = "" # Call when an element starts def startElement(self, tag, attributes): self.CurrentData = tag if tag == "movie": print "*****Movie*****" title = attributes["title"] print "Title:", title # Call when an elements ends def endElement(self, tag): if self.CurrentData == "type": print "Type:", self.type elif self.CurrentData == "format": print "Format:", self.format elif self.CurrentData == "year": print "Year:", self.year elif self.CurrentData == "rating": print "Rating:", self.rating elif self.CurrentData == "stars": print "Stars:", self.stars elif self.CurrentData == "description": print "Description:", self.description self.CurrentData = "" # Call when a character is read 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__"): # create an XMLReader parser = xml.sax.make_parser() # turn off namepsaces parser.setFeature(xml.sax.handler.feature_namespaces, 0) # override the default ContextHandler Handler = MovieHandler() parser.setContentHandler( Handler ) parser.parse("movies.xml")
Ini akan menghasilkan hasil berikut
*****Movie***** Title: Enemy Behind Type: War, Thriller Format: DVD Year: 2003 Rating: PG Stars: 10 Description: Talk about a US-Japan war *****Movie***** Title: Transformers Type: Anime, Science Fiction Format: DVD Year: 1989 Rating: R Stars: 8 Description: A schientific fiction *****Movie***** Title: Trigun Type: Anime, Action Format: DVD Rating: PG Stars: 10 Description: Vash the Stampede! *****Movie***** Title: Ishtar Type: Comedy Format: VHS Rating: PG Stars: 2 Description: Viewable boredom
Untuk detail lengkap tentang dokumentasi SAX API, silakan merujuk ke Python SAX API standar.
Document Object Model ("DOM") adalah API lintas bahasa dari World Wide Web Consortium (W3C) untuk mengakses dan memodifikasi dokumen XML.
DOM sangat berguna untuk aplikasi akses acak. SAX hanya memungkinkan Anda melihat satu bit dokumen pada satu waktu. Jika Anda melihat satu elemen SAX, Anda tidak memiliki akses ke elemen lainnya.
Berikut adalah cara termudah untuk memuat dokumen XML dengan cepat dan membuat objek minidom menggunakan modul xml.dom. Objek minidom menyediakan metode parser sederhana yang dengan cepat membuat pohon DOM dari file XML.
Frase contoh memanggil fungsi parse( file [,parser] ) dari objek minidom untuk mengurai file XML yang ditunjuk oleh file ke dalam objek pohon 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
Ini akan menghasilkan hasil berikut
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
Untuk detail lengkap tentang dokumentasi DOM API, silakan merujuk ke Python DOM API standar.
Python
Diagram Pengkabelan Termostat Pemanas Air Elemen Tunggal Di musim dingin dan dingin yang menusuk tulang, kita lebih membutuhkan air panas daripada dia. Jika ini bukan kasus Anda (jangan berbohong), saya lebih suka mengatakan yang sebenarnya “Saya Suka Air Panas Terlalu Banyak di Cuaca Dingin dan Be
Bagi banyak tim pengembangan IoT, keamanan tetap menjadi item daftar keinginan yang dianggap tidak sebanding dengan biaya dan upaya yang diperlukan untuk implementasi dalam produk konsumen. Konsumen tampaknya tidak mau membayar ekstra untuk fitur keamanan siber yang ditingkatkan atau untuk menghinda
Anda dapat mengikuti beberapa cara untuk membuat proses pembuatan papan sirkuit cetak fleksibel menjadi sempurna. Sementara semuanya berhasil, beberapa bisa menjadi lebih baik daripada yang lain, dan beberapa murah sementara yang lain mahal. Papan sirkuit cetak fleksibel, juga disebut sebagai sirkui
Dunia pemasaran saat ini dipenuhi dengan banyak istilah dan kata kunci. Dari akronim seperti KPI dan CTR hingga tren industri yang meningkat seperti big data dan hyperlocal, para pemimpin penjualan dan pemasaran di ruang manufaktur terus-menerus menemukan kata kunci di kiri dan kanan. Jadi, ketika A
Pemesinan CNC mencakup berbagai alat yang digunakan dalam berbagai kemampuan. Tanpa pemahaman yang tepat, akan sulit untuk memahami menggunakan alat. Contoh alat tersebut adalah perlengkapan CNC, juga dikenal sebagai perlengkapan workholding CNC. Artikel ini akan mengungkap perlengkapan workholdin
Pemodelan 3D dapat didefinisikan secara sederhana sebagai pembuatan objek digital dan tiga dimensi. Seperti yang disaksikan di banyak film laris Hollywood, permainan komputer, dan industri cetak digital di seluruh dunia, tidak ada keraguan bahwa ada peningkatan dalam Pemodelan 3D. Meningkatnya pe