Percetakan XML yang cantik dalam Python
Apabila bekerja dengan data XML dalam Python, memastikan kebolehbacaan dan strukturnya dapat meningkatkan pemahaman dan kebolehselenggaraan kod anda. XML pencetakan cantik, iaitu, memformatkannya dengan lekukan dan baris baharu yang sesuai, ialah teknik yang berharga untuk mencapai matlamat ini.
Dalam artikel ini, kami akan meneroka dua cara berbeza untuk mencetak XML dengan cantik menggunakan Python: xml.dom.minidom dan xml.etree.ElementTree. Dengan memahami kaedah ini, pembangun boleh mempersembahkan data XML dengan berkesan dalam cara yang teratur dan menarik secara visual, menjadikannya lebih mudah untuk dianalisis dan dimanipulasi.
Bagaimana untuk mencetak XML dengan cantik dalam Python?
Berikut ialah dua cara kita boleh melakukan cetakan cantik dalam Python -
Kaedah 1: Gunakan xml.dom.minidom
Berikut ialah langkah-langkah yang akan kami ambil untuk melakukan pencetakan cantik menggunakan xml.dom.minidom -
Import modul yang diperlukan: Kami mula-mula mengimport modul "xml.dom.minidom", yang menyediakan pelaksanaan ringan API Document Object Model (DOM) untuk penghuraian XML.
Tentukan fungsi `pretty_print_xml_minidom`: Fungsi ini menerima rentetan XML sebagai input dan bertanggungjawab untuk menghuraikan dan mencantikkan XML untuk mencetak menggunakan `xml.dom.minidom`.
Menghuraikan rentetan XML: Di dalam fungsi `pretty_print_xml_minidom`, kami menggunakan kaedah `xml.dom.minidom.parseString()` untuk menghuraikan rentetan XML dan mencipta objek DOM.
Create-printing XML: Seterusnya, kami menggunakan kaedah "toprettyxml()" pada objek DOM untuk menjana rentetan XML yang cantik-cetak. Kami lulus parameter "indent" dengan nilai """ untuk menentukan tahap lekukan yang diingini (dua ruang dalam kes ini).
Alih keluar baris kosong: Secara lalai, `toprettyxml()` menambah baris kosong pada output. Untuk mengalih keluar baris kosong ini, kami membahagikan rentetan XML yang cantik dengan baris baharu (`n`), mengalih keluar mana-mana ruang putih di hadapan atau di belakang dalam setiap baris, dan kemudian menggabungkan baris bukan kosong kembali bersama.
Cetak XML cantik: Akhir sekali, kami mencetak rentetan XML cantik yang dihasilkan.
Prosedur 2: Menggunakan xml.etree.ElementTree
Berikut adalah langkah yang akan kami ikuti semasa melakukan cetakan cantik menggunakan xml.etree.ElementTree -
Import modul yang diperlukan: Kami mula-mula mengimport modul `xml.etree.ElementTree`, yang menyediakan API yang pantas dan cekap untuk menghurai dan memanipulasi XML.
Definisi `indent` Fungsi: Ini ialah fungsi tersuai yang digunakan untuk menambah inden secara rekursif pada elemen XML. Ia menerima parameter `elem` (elemen XML) dan parameter `level` pilihan untuk menentukan tahap lekukan semasa (lalai ialah 0).
Indent XML: Dalam fungsi `indent`, kami menambah indent > atribut elemen XML dengan mengubah suai `text` dan `tail`. Atribut `text` mewakili teks sejurus selepas teg pembukaan, dan atribut `tail` mewakili teks sejurus sebelum teg penutup. Dengan menambahkan lekukan pada sifat ini, kami mencapai cetakan yang cantik.
Definisi fungsi `pretty_print_xml_elementtree`: Fungsi ini mengambil rentetan XML sebagai input dan bertanggungjawab untuk menghurai dan mencetak cantik XML menggunakan `xml.etree.ElementTree`.
Menghuraikan rentetan XML: Di dalam fungsi `pretty_print_xml_elementtree`, kami menggunakan kaedah `ET.fromstring()` untuk menghuraikan rentetan XML dan mencipta objek ElementTree.
Indent XML: Kami memanggil fungsi `indent()` pada elemen akar XML untuk menambah lekukan pada semua elemen secara rekursif.
Tukar elemen XML kembali kepada rentetan: Kami menggunakan kaedah `ET.tostring()` untuk menukar elemen XML kembali kepada perwakilan rentetan. Kami lulus parameter `pengekodan` dengan nilai `"unicode"` untuk memastikan pengekodan yang betul bagi rentetan yang terhasil.
Cetak XML cantik: Akhir sekali, kami mencetak rentetan XML cantik yang dijana.
Kedua-dua program ini menyediakan cara yang berbeza untuk mencapai pencetakan XML yang cantik. Program pertama menggunakan API DOM yang disediakan oleh `xml.dom.minidom` untuk menghuraikan dan mencetak XML dengan cantik, manakala program kedua menggunakan modul `xml.etree.ElementTree` dan mentakrifkan fungsi tersuai untuk Menambah lekukan pada Elemen XML secara rekursif.
Berikut adalah contoh program menggunakan dua kaedah di atas -
Pilihan 1: Gunakan xml.dom.minidom
import xml.dom.minidom def pretty_print_xml_minidom(xml_string): # Parse the XML string dom = xml.dom.minidom.parseString(xml_string) # Pretty print the XML pretty_xml = dom.toprettyxml(indent=" ") # Remove empty lines pretty_xml = "\n".join(line for line in pretty_xml.split("\n") if line.strip()) # Print the pretty XML print(pretty_xml) # Example usage xml_string = ''' <root> <element attribute="value"> <subelement>Text</subelement> </element> </root> ''' pretty_print_xml_minidom(xml_string)
Output
<?xml version="1.0" ?> <root> <element attribute="value"> <subelement>Text</subelement> </element> </root>
Prosedur 2: Menggunakan xml.etree.ElementTree
import xml.etree.ElementTree as ET def indent(elem, level=0): # Add indentation indent_size = " " i = "\n" + level * indent_size if len(elem): if not elem.text or not elem.text.strip(): elem.text = i + indent_size if not elem.tail or not elem.tail.strip(): elem.tail = i for elem in elem: indent(elem, level + 1) if not elem.tail or not elem.tail.strip(): elem.tail = i else: if level and (not elem.tail or not elem.tail.strip()): elem.tail = i def pretty_print_xml_elementtree(xml_string): # Parse the XML string root = ET.fromstring(xml_string) # Indent the XML indent(root) # Convert the XML element back to a string pretty_xml = ET.tostring(root, encoding="unicode") # Print the pretty XML print(pretty_xml) # Example usage xml_string = ''' <root> <element attribute="value"> <subelement>Text</subelement> </element> </root> ''' pretty_print_xml_elementtree(xml_string)
Output
<root> <element attribute="value"> <subelement>Text</subelement> </element> </root>
Kesimpulan
Ringkasnya, pencetakan XML yang cantik dalam Python adalah penting untuk meningkatkan kebolehbacaan dan struktur data XML anda. Sama ada menggunakan perpustakaan xml.dom.minidom atau xml.etree.ElementTree, pembangun boleh memformat XML dengan mudah dengan lekukan yang betul. Dengan menggunakan teknik ini, pengaturcara boleh meningkatkan pemahaman kod, memudahkan penyahpepijatan dan menggalakkan kerjasama yang lebih baik apabila bekerja dengan data XML dalam projek Python.
Atas ialah kandungan terperinci Percetakan XML yang cantik dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...

Ekspresi biasa adalah alat yang berkuasa untuk memadankan corak dan manipulasi teks dalam pengaturcaraan, meningkatkan kecekapan dalam pemprosesan teks merentasi pelbagai aplikasi.

Bagaimanakah Uvicorn terus mendengar permintaan HTTP? Uvicorn adalah pelayan web ringan berdasarkan ASGI. Salah satu fungsi terasnya ialah mendengar permintaan HTTP dan teruskan ...

Di Python, bagaimana untuk membuat objek secara dinamik melalui rentetan dan panggil kaedahnya? Ini adalah keperluan pengaturcaraan yang biasa, terutamanya jika perlu dikonfigurasikan atau dijalankan ...

Artikel ini membincangkan perpustakaan Python yang popular seperti Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask, dan Permintaan, memperincikan kegunaan mereka dalam pengkomputeran saintifik, analisis data, visualisasi, pembelajaran mesin, pembangunan web, dan h
