Rumah > Artikel > pembangunan bahagian belakang > Teknologi transformasi dan pembinaan semula data XML dalam Python
Teknologi transformasi dan pembinaan semula data XML dalam Python
XML (Extensible Markup Language) ialah format biasa yang digunakan untuk menyimpan dan menghantar data. Dalam kerja pengaturcaraan harian, kita sering perlu memproses data XML, seperti penghuraian, pengubahsuaian, pembinaan semula, dsb. Python, sebagai bahasa pengaturcaraan yang popular, menyediakan alat yang berkuasa untuk memproses data XML. Artikel ini akan memperkenalkan beberapa teknik untuk transformasi dan pembinaan semula data XML dalam Python, dan memberikan contoh kod yang sepadan.
Pustaka ElementTree ialah perpustakaan terbina dalam Python yang boleh menghuraikan dan menjana data XML melalui API mudah. Berikut ialah contoh yang menunjukkan cara menghuraikan fail XML dan mengekstrak data di dalamnya:
import xml.etree.ElementTree as ET # 解析XML文件 tree = ET.parse('data.xml') root = tree.getroot() # 提取数据 for element in root.iter('item'): print(element.text)
Kod di atas terlebih dahulu menghuraikan fail XML bernama 'data.xml' melalui fungsi ET.parse() dan memperoleh elemen akar. . Kemudian dengan melintasi kaedah iter() unsur akar, cari semua elemen anak bernama 'item' dan cetak teksnya.
Selain menghuraikan data XML, kami juga boleh menggunakan perpustakaan ElementTree untuk menjana fail XML baharu. Berikut ialah contoh:
import xml.etree.ElementTree as ET # 创建XML树 root = ET.Element('data') # 创建子元素 item1 = ET.SubElement(root, 'item') item1.text = 'Apple' item2 = ET.SubElement(root, 'item') item2.text = 'Banana' # 创建XML文件 tree = ET.ElementTree(root) tree.write('new_data.xml')
Kod di atas mula-mula mencipta elemen akar dan mencipta dua sub-elemen melalui fungsi ET.SubElement(). Kemudian gunakan fungsi ET.ElementTree() untuk mencipta pepohon XML dan tuliskannya pada fail bernama 'new_data.xml'.
xml.dom ialah perpustakaan terbina dalam Python yang menyediakan satu set API untuk mengendalikan dokumen XML. Berikut ialah contoh yang menunjukkan cara mengubah suai elemen tertentu dalam fail XML:
import xml.dom.minidom # 解析XML文件 dom = xml.dom.minidom.parse('data.xml') root = dom.documentElement # 修改元素 items = root.getElementsByTagName('item') for item in items: item.firstChild.data = item.firstChild.data.upper() # 保存修改 with open('new_data.xml', 'w') as f: dom.writexml(f)
Kod di atas terlebih dahulu menghuraikan fail XML bernama 'data.xml' melalui fungsi xml.dom.minidom.parse() dan mendapatkan akar unsur. Kemudian cari semua elemen bernama 'item' melalui kaedah getElementsByTagName() dan tukar teksnya kepada huruf besar. Akhir sekali, simpan dokumen XML yang diubah suai ke fail 'new_data.xml'.
Selain perpustakaan xml.dom, perpustakaan lxml juga merupakan perpustakaan pemprosesan XML yang berkuasa. Ia berdasarkan perpustakaan C libxml2 dan libxslt serta menyediakan API yang lebih cekap dan fleksibel. Berikut ialah contoh yang menunjukkan cara membina semula fail XML menggunakan perpustakaan lxml:
from lxml import etree # 解析XML文件 tree = etree.parse('data.xml') root = tree.getroot() # 重构XML树 for element in root.iter('item'): element.tag = 'fruit' # 保存重构 tree.write('new_data.xml')
Kod di atas terlebih dahulu menghuraikan fail XML bernama 'data.xml' menggunakan fungsi etree.parse() dan mendapatkan elemen akar. Kemudian dengan melintasi kaedah iter() unsur akar, cari semua elemen bernama 'item' dan ubah suai labelnya kepada 'buah'. Akhir sekali, simpan pepohon XML yang dibina semula ke fail 'new_data.xml'.
Ringkasan
Python menyediakan pelbagai alatan dan perpustakaan untuk memproses data XML. Artikel ini memperkenalkan beberapa teknik transformasi dan pembinaan semula data XML yang biasa digunakan dalam Python, termasuk menghurai dan menjana data XML, serta mengubah suai dan membina semula data XML. Saya harap artikel ini akan membantu anda semasa memproses data XML dalam Python.
Atas ialah kandungan terperinci Teknologi transformasi dan pembinaan semula data XML dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!