Python mengganti nilai tag xml
Modul ini tidak aman terhadap data yang dikonstruksi secara jahat. Jika Anda perlu mengurai data yang tidak dipercaya atau tidak diautentikasi, lihat Show
TutorialIni adalah tutorial singkat untuk menggunakan ( >>> root.tag 'data' >>> root.attrib {}7 singkatnya). Tujuannya adalah untuk mendemonstrasikan beberapa blok bangunan dan konsep dasar modul Pohon dan elemen XMLXML pada dasarnya adalah format data hierarkis, dan cara paling alami untuk merepresentasikannya adalah dengan pohon. >>> root.tag 'data' >>> root.attrib {}7 memiliki dua kelas untuk tujuan ini - mewakili seluruh dokumen XML sebagai pohon, dan mewakili satu simpul di pohon ini. Interaksi dengan seluruh dokumen (membaca dan menulis ke/dari file) biasanya dilakukan pada level. Interaksi dengan satu elemen XML dan sub-elemennya dilakukan pada level Mengurai XMLKami akan menggunakan dokumen XML berikut sebagai contoh data untuk bagian ini
Kita dapat mengimpor data ini dengan membaca dari file import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot() Atau langsung dari string root = ET.fromstring(country_data_as_string)_ mem-parsing XML dari string langsung ke , yang merupakan elemen akar dari pohon yang diurai. Fungsi penguraian lainnya dapat membuat file. Periksa dokumentasi untuk memastikan Sebagai , >>> for child in root: .. print(child.tag, child.attrib) ... country {'name': 'Liechtenstein'} country {'name': 'Singapore'} country {'name': 'Panama'}_7 memiliki tag dan kamus atribut >>> root.tag 'data' >>> root.attrib {} Ini juga memiliki simpul anak yang dapat kita iterasi >>> for child in root: .. print(child.tag, child.attrib) ... country {'name': 'Liechtenstein'} country {'name': 'Singapore'} country {'name': 'Panama'} Anak-anak bersarang, dan kami dapat mengakses node anak tertentu berdasarkan indeks >>> root[0][1].text '2008'_ Catatan Tidak semua elemen masukan XML akan berakhir sebagai elemen pohon parsing. Saat ini, modul ini melewati semua komentar XML, instruksi pemrosesan, dan deklarasi tipe dokumen di input. Namun demikian, pohon yang dibangun menggunakan API modul ini daripada mem-parsing dari teks XML dapat memiliki komentar dan instruksi pemrosesan di dalamnya; . Deklarasi tipe dokumen dapat diakses dengan mengirimkan instance khusus ke konstruktor Tarik API untuk penguraian non-pemblokiranSebagian besar fungsi penguraian yang disediakan oleh modul ini mengharuskan seluruh dokumen dibaca sekaligus sebelum mengembalikan hasil apa pun. Dimungkinkan untuk menggunakan dan memasukkan data ke dalamnya secara bertahap, tetapi ini adalah API push yang memanggil metode pada target panggilan balik, yang levelnya terlalu rendah dan tidak nyaman untuk sebagian besar kebutuhan. Kadang-kadang apa yang benar-benar diinginkan pengguna adalah dapat mengurai XML secara bertahap, tanpa memblokir operasi, sambil menikmati kenyamanan objek yang dibangun sepenuhnya. Alat paling ampuh untuk melakukan ini adalah. Itu tidak memerlukan pembacaan pemblokiran untuk mendapatkan data XML, dan sebagai gantinya diberi data secara bertahap dengan panggilan. Untuk mendapatkan elemen XML yang diurai, panggil. Ini sebuah contoh >>> parser = ET.XMLPullParser(['start', 'end']) >>> parser.feed('_ Kasus penggunaan yang jelas adalah aplikasi yang beroperasi dengan cara non-pemblokiran di mana data XML diterima dari soket atau dibaca secara bertahap dari beberapa perangkat penyimpanan. Dalam kasus seperti itu, pemblokiran pembacaan tidak dapat diterima Karena sangat fleksibel, bisa jadi tidak nyaman digunakan untuk kasus penggunaan yang lebih sederhana. Jika Anda tidak keberatan aplikasi Anda memblokir membaca data XML tetapi masih ingin memiliki kemampuan parsing inkremental, lihatlah. Ini bisa berguna saat Anda membaca dokumen XML besar dan tidak ingin menyimpannya sepenuhnya di memori Menemukan elemen yang menarikmemiliki beberapa metode berguna yang membantu melakukan iterasi secara rekursif pada semua sub-pohon di bawahnya (anak-anaknya, anak-anak mereka, dan seterusnya). Misalnya, >>> for neighbor in root.iter('neighbor'): .. print(neighbor.attrib) ... {'name': 'Austria', 'direction': 'E'} {'name': 'Switzerland', 'direction': 'W'} {'name': 'Malaysia', 'direction': 'N'} {'name': 'Costa Rica', 'direction': 'W'} {'name': 'Colombia', 'direction': 'E'} hanya menemukan elemen dengan tag yang merupakan turunan langsung dari elemen saat ini. menemukan anak pertama dengan tag tertentu, dan mengakses konten teks elemen. mengakses atribut elemen >>> for country in root.findall('country'): .. rank = country.find('rank').text .. name = country.get('name') .. print(name, rank) ... Liechtenstein 1 Singapore 4 Panama 68 Spesifikasi yang lebih canggih dari elemen mana yang dicari dimungkinkan dengan menggunakan Memodifikasi File XMLmenyediakan cara sederhana untuk membuat dokumen XML dan menuliskannya ke file. Metode melayani tujuan ini Setelah dibuat, objek dapat dimanipulasi dengan langsung mengubah bidangnya (seperti ), menambahkan dan memodifikasi atribut (metode), serta menambahkan anak baru (misalnya dengan ) Katakanlah kita ingin menambahkan satu ke peringkat masing-masing negara, dan menambahkan atribut >>> parser = ET.XMLPullParser(['start', 'end']) >>> parser.feed('9 ke elemen peringkat >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml') XML kami sekarang terlihat seperti ini import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()0 Kita dapat menghapus elemen menggunakan. Katakanlah kita ingin menghapus semua negara dengan peringkat lebih tinggi dari 50 import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()1 Perhatikan bahwa modifikasi bersamaan saat iterasi dapat menyebabkan masalah, seperti saat iterasi dan modifikasi daftar atau dikt Python. Oleh karena itu, contoh pertama-tama mengumpulkan semua elemen yang cocok dengan >>> for neighbor in root.iter('neighbor'): .. print(neighbor.attrib) ... {'name': 'Austria', 'direction': 'E'} {'name': 'Switzerland', 'direction': 'W'} {'name': 'Malaysia', 'direction': 'N'} {'name': 'Costa Rica', 'direction': 'W'} {'name': 'Colombia', 'direction': 'E'}1, dan baru kemudian mengulangi daftar kecocokan XML kami sekarang terlihat seperti ini import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()2 Membuat dokumen XMLFungsi ini juga menyediakan cara mudah untuk membuat sub-elemen baru untuk elemen tertentu import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_3 Mem-parsing XML dengan Ruang NamaJika input XML memiliki ruang nama, tag, dan atribut dengan awalan dalam bentuk >>> for neighbor in root.iter('neighbor'): .. print(neighbor.attrib) ... {'name': 'Austria', 'direction': 'E'} {'name': 'Switzerland', 'direction': 'W'} {'name': 'Malaysia', 'direction': 'N'} {'name': 'Costa Rica', 'direction': 'W'} {'name': 'Colombia', 'direction': 'E'}3 diperluas ke >>> for neighbor in root.iter('neighbor'): .. print(neighbor.attrib) ... {'name': 'Austria', 'direction': 'E'} {'name': 'Switzerland', 'direction': 'W'} {'name': 'Malaysia', 'direction': 'N'} {'name': 'Costa Rica', 'direction': 'W'} {'name': 'Colombia', 'direction': 'E'}4 di mana awalan diganti dengan URI lengkap. Juga, jika ada , URI lengkap itu akan ditambahkan ke semua tag yang tidak diawali Berikut adalah contoh XML yang menggabungkan dua ruang nama, satu dengan awalan "fiksi" dan yang lainnya berfungsi sebagai ruang nama default import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_4 Salah satu cara untuk mencari dan menjelajahi contoh XML ini adalah dengan menambahkan URI secara manual ke setiap tag atau atribut di xpath dari sebuah atau import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()5 Cara yang lebih baik untuk mencari contoh XML namespace adalah membuat kamus dengan awalan Anda sendiri dan menggunakannya dalam fungsi pencarian import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()6 Kedua pendekatan ini sama-sama keluaran import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_7 dukungan XPathModul ini memberikan dukungan terbatas untuk ekspresi XPath untuk menemukan elemen di pohon. Tujuannya adalah untuk mendukung sebagian kecil dari sintaks yang disingkat; ContohBerikut adalah contoh yang menunjukkan beberapa kemampuan modul XPath. Kami akan menggunakan dokumen XML >>> for neighbor in root.iter('neighbor'): .. print(neighbor.attrib) ... {'name': 'Austria', 'direction': 'E'} {'name': 'Switzerland', 'direction': 'W'} {'name': 'Malaysia', 'direction': 'N'} {'name': 'Costa Rica', 'direction': 'W'} {'name': 'Colombia', 'direction': 'E'}_7 dari bagian tersebut import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()8 Untuk XML dengan ruang nama, gunakan notasi >>> for neighbor in root.iter('neighbor'): .. print(neighbor.attrib) ... {'name': 'Austria', 'direction': 'E'} {'name': 'Switzerland', 'direction': 'W'} {'name': 'Malaysia', 'direction': 'N'} {'name': 'Costa Rica', 'direction': 'W'} {'name': 'Colombia', 'direction': 'E'}8 yang memenuhi syarat import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_9 Sintaks XPath yang didukungSintaksis Arti >>> for neighbor in root.iter('neighbor'): .. print(neighbor.attrib) ... {'name': 'Austria', 'direction': 'E'} {'name': 'Switzerland', 'direction': 'W'} {'name': 'Malaysia', 'direction': 'N'} {'name': 'Costa Rica', 'direction': 'W'} {'name': 'Colombia', 'direction': 'E'}_9 Memilih semua elemen anak dengan tag yang diberikan. Misalnya, >>> for country in root.findall('country'): .. rank = country.find('rank').text .. name = country.get('name') .. print(name, rank) ... Liechtenstein 1 Singapore 4 Panama 68_0 memilih semua elemen anak bernama >>> for country in root.findall('country'): .. rank = country.find('rank').text .. name = country.get('name') .. print(name, rank) ... Liechtenstein 1 Singapore 4 Panama 680, dan >>> for country in root.findall('country'): .. rank = country.find('rank').text .. name = country.get('name') .. print(name, rank) ... Liechtenstein 1 Singapore 4 Panama 682 memilih semua cucu bernama >>> for country in root.findall('country'): .. rank = country.find('rank').text .. name = country.get('name') .. print(name, rank) ... Liechtenstein 1 Singapore 4 Panama 683 di semua anak bernama >>> for country in root.findall('country'): .. rank = country.find('rank').text .. name = country.get('name') .. print(name, rank) ... Liechtenstein 1 Singapore 4 Panama 680. >>> for country in root.findall('country'): .. rank = country.find('rank').text .. name = country.get('name') .. print(name, rank) ... Liechtenstein 1 Singapore 4 Panama 68_5 memilih semua tag dalam namespace yang diberikan, >>> for country in root.findall('country'): .. rank = country.find('rank').text .. name = country.get('name') .. print(name, rank) ... Liechtenstein 1 Singapore 4 Panama 686 memilih tag bernama >>> for country in root.findall('country'): .. rank = country.find('rank').text .. name = country.get('name') .. print(name, rank) ... Liechtenstein 1 Singapore 4 Panama 680 dalam (atau tidak ada) namespace, dan >>> for country in root.findall('country'): .. rank = country.find('rank').text .. name = country.get('name') .. print(name, rank) ... Liechtenstein 1 Singapore 4 Panama 688 hanya memilih tag yang tidak ada dalam namespace Berubah di versi 3. 8. Dukungan untuk star-wildcard telah ditambahkan. >>> for country in root.findall('country'): .. rank = country.find('rank').text .. name = country.get('name') .. print(name, rank) ... Liechtenstein 1 Singapore 4 Panama 68_9 Memilih semua elemen turunan, termasuk komentar dan instruksi pemrosesan. Misalnya, >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml')_0 memilih semua cucu bernama >>> for country in root.findall('country'): .. rank = country.find('rank').text .. name = country.get('name') .. print(name, rank) ... Liechtenstein 1 Singapore 4 Panama 683 >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml')2 Memilih node saat ini. Ini sebagian besar berguna di awal jalur, untuk menunjukkan bahwa itu adalah jalur relatif >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml')3 Memilih semua subelemen, pada semua level di bawah elemen saat ini. Misalnya, >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml')_4 memilih semua >>> for country in root.findall('country'): .. rank = country.find('rank').text .. name = country.get('name') .. print(name, rank) ... Liechtenstein 1 Singapore 4 Panama 683 elemen di seluruh pohon >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml')6 Memilih elemen induk. Mengembalikan >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml')_7 jika jalur mencoba menjangkau leluhur elemen awal (elemen >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml')8 dipanggil) >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml')_9 Memilih semua elemen yang memiliki atribut yang diberikan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_00 Memilih semua elemen yang atribut yang diberikan memiliki nilai yang diberikan. Nilai tidak boleh berisi tanda kutip import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_01 Memilih semua elemen yang atribut yang diberikan tidak memiliki nilai yang diberikan. Nilai tidak boleh berisi tanda kutip Baru di versi 3. 10 import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_02 Memilih semua elemen yang memiliki anak bernama >>> for neighbor in root.iter('neighbor'): .. print(neighbor.attrib) ... {'name': 'Austria', 'direction': 'E'} {'name': 'Switzerland', 'direction': 'W'} {'name': 'Malaysia', 'direction': 'N'} {'name': 'Costa Rica', 'direction': 'W'} {'name': 'Colombia', 'direction': 'E'}9. Hanya anak terdekat yang didukung import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_04 Memilih semua elemen yang konten teks lengkapnya, termasuk keturunan, sama dengan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()05 yang diberikan Baru di versi 3. 7 import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_06 Memilih semua elemen yang konten teks lengkapnya, termasuk keturunannya, tidak sama dengan yang diberikan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()05 Baru di versi 3. 10 import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_08 Memilih semua elemen yang memiliki anak bernama >>> for neighbor in root.iter('neighbor'): .. print(neighbor.attrib) ... {'name': 'Austria', 'direction': 'E'} {'name': 'Switzerland', 'direction': 'W'} {'name': 'Malaysia', 'direction': 'N'} {'name': 'Costa Rica', 'direction': 'W'} {'name': 'Colombia', 'direction': 'E'}9 yang konten teks lengkapnya, termasuk keturunan, sama dengan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()05 yang diberikan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_11 Memilih semua elemen yang memiliki anak bernama >>> for neighbor in root.iter('neighbor'): .. print(neighbor.attrib) ... {'name': 'Austria', 'direction': 'E'} {'name': 'Switzerland', 'direction': 'W'} {'name': 'Malaysia', 'direction': 'N'} {'name': 'Costa Rica', 'direction': 'W'} {'name': 'Colombia', 'direction': 'E'}9 yang konten teks lengkapnya, termasuk keturunan, tidak sama dengan yang diberikan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()05 Baru di versi 3. 10 import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_14 Memilih semua elemen yang terletak di posisi yang diberikan. Posisi dapat berupa bilangan bulat (1 adalah posisi pertama), ekspresi import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()15 (untuk posisi terakhir), atau posisi relatif terhadap posisi terakhir (e. g. import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_16) Predikat (ekspresi dalam tanda kurung siku) harus diawali dengan nama tag, tanda bintang, atau predikat lain. import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()17 predikat harus diawali dengan nama tag ReferensiFungsixml. etree. ElementTree. kanonikalisasi(xml_data=Tidak ada, *, out=None, from_file=None, **options)C14N 2. 0 fungsi transformasi Canonicalization adalah cara untuk menormalkan output XML dengan cara yang memungkinkan perbandingan byte-by-byte dan tanda tangan digital. Ini mengurangi kebebasan yang dimiliki pembuat serial XML dan sebagai gantinya menghasilkan representasi XML yang lebih terbatas. Pembatasan utama berkaitan dengan penempatan deklarasi namespace, pengurutan atribut, dan spasi kosong yang tidak dapat diabaikan Fungsi ini mengambil string data XML (xml_data) atau jalur file atau objek seperti file (from_file) sebagai input, mengubahnya menjadi bentuk kanonis, dan menuliskannya menggunakan objek out file(-like), jika disediakan, atau . File keluaran menerima teks, bukan byte. Karena itu harus dibuka dalam mode teks dengan pengkodean ________3______18 Penggunaan yang khas root = ET.fromstring(country_data_as_string)_0 Opsi konfigurasi adalah sebagai berikut
Dalam daftar opsi di atas, "satu set" mengacu pada kumpulan atau iterable string apa pun, tidak ada pengurutan yang diharapkan Baru di versi 3. 8 xml. etree. ElementTree. Komentar(teks=Tidak ada)Pabrik elemen komentar. Fungsi pabrik ini membuat elemen khusus yang akan diserialkan sebagai komentar XML oleh serializer standar. String komentar dapat berupa bytestring atau string Unicode. teks adalah string yang berisi string komentar. Mengembalikan instance elemen yang mewakili komentar Perhatikan bahwa lewati komentar di input alih-alih membuat objek komentar untuknya. An hanya akan berisi node komentar jika telah dimasukkan ke dalam pohon menggunakan salah satu metode xml. etree. ElementTree. dump(elem)Menulis pohon elemen atau struktur elemen ke sys. stdout. Fungsi ini harus digunakan untuk debugging saja Format output yang tepat bergantung pada implementasi. Dalam versi ini, ditulis sebagai file XML biasa elem adalah pohon elemen atau elemen individu Berubah di versi 3. 8. Fungsi sekarang mempertahankan urutan atribut yang ditentukan oleh pengguna. xml. etree. ElementTree. fromstring(teks , parser=None)Mem-parsing bagian XML dari konstanta string. Sama dengan. teks adalah string yang berisi data XML. parser adalah contoh parser opsional. Jika tidak diberikan, parser standar digunakan. Mengembalikan sebuah instance xml. etree. ElementTree. fromstringlist(urutan , parser=None)Mem-parsing dokumen XML dari urutan fragmen string. urutan adalah daftar atau urutan lain yang berisi fragmen data XML. parser adalah contoh parser opsional. Jika tidak diberikan, parser standar digunakan. Mengembalikan sebuah instance Baru di versi 3. 2 xml. etree. ElementTree. inden(pohon , ruang=' ', level=0)Menambahkan spasi putih ke subpohon untuk mengindentasi pohon secara visual. Ini dapat digunakan untuk menghasilkan keluaran XML yang dicetak dengan cantik. pohon bisa berupa Elemen atau ElementTree. spasi adalah string spasi putih yang akan disisipkan untuk setiap level indentasi, dua karakter spasi secara default. Untuk mengindentasi sebagian subpohon di dalam pohon yang sudah terindentasi, berikan level indentasi awal sebagai level Baru di versi 3. 9 xml. etree. ElementTree. iselement(elemen)Periksa apakah suatu objek tampak sebagai objek elemen yang valid. elemen adalah contoh elemen. Kembalikan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_28 jika ini adalah objek elemenxml. etree. ElementTree. iterparse(sumber , acara=None, parser=None) Mem-parsing bagian XML ke dalam pohon elemen secara bertahap, dan melaporkan apa yang terjadi kepada pengguna. sumber adalah nama file atau berisi data XML. peristiwa adalah urutan peristiwa untuk melaporkan kembali. Acara yang didukung adalah string import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_29, import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()30, import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()31, import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()32, import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()33 dan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()34 (acara "ns" digunakan untuk mendapatkan informasi ruang nama terperinci). Jika acara dihilangkan, hanya import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_30 acara yang dilaporkan. parser adalah contoh parser opsional. Jika tidak diberikan, parser standar digunakan. parser harus merupakan subkelas dari dan hanya dapat menggunakan default sebagai target. Mengembalikan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_39 pasangan yang menyediakan Perhatikan bahwa saat membangun pohon secara bertahap, ia mengeluarkan pemblokiran pembacaan pada sumber (atau file yang diberi nama). Dengan demikian, itu tidak cocok untuk aplikasi di mana pemblokiran pembacaan tidak dapat dilakukan. Untuk penguraian yang sepenuhnya non-pemblokiran, lihat Catatan hanya menjamin bahwa ia telah melihat karakter ">" dari tag awal ketika memancarkan peristiwa "mulai", jadi atributnya ditentukan, tetapi konten atribut teks dan ekor tidak ditentukan pada saat itu. Hal yang sama berlaku untuk elemen anak; Jika Anda membutuhkan elemen yang terisi penuh, cari acara "akhir". Tidak digunakan lagi sejak versi 3. 4. Argumen parser. Berubah di versi 3. 8. Acara import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()43 dan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()44 telah ditambahkan. xml. etree. ElementTree. mengurai(sumber , mengurai=None) Mem-parsing bagian XML ke dalam pohon elemen. sumber adalah nama file atau objek file yang berisi data XML. parser adalah contoh parser opsional. Jika tidak diberikan, parser standar digunakan. Mengembalikan sebuah instance xml. etree. ElementTree. Instruksi Pemrosesan(target , teks=None)pabrik elemen PI. Fungsi pabrik ini membuat elemen khusus yang akan diserialkan sebagai instruksi pemrosesan XML. target adalah string yang berisi target PI. teks adalah string yang berisi konten PI, jika diberikan. Mengembalikan instance elemen, yang mewakili instruksi pemrosesan Perhatikan bahwa melewatkan instruksi pemrosesan di input alih-alih membuat objek komentar untuknya. An hanya akan berisi node instruksi pemrosesan jika telah dimasukkan ke dalam pohon menggunakan salah satu metode xml. etree. ElementTree. register_namespace(awalan , uri)Mendaftarkan awalan namespace. Registri bersifat global, dan semua pemetaan yang ada untuk awalan yang diberikan atau URI namespace akan dihapus. awalan adalah awalan namespace. uri adalah ruang nama uri. Tag dan atribut dalam ruang nama ini akan diserialisasi dengan awalan yang diberikan, jika memungkinkan Baru di versi 3. 2 xml. etree. ElementTree. SubElement(induk , tag, attrib={}, **extra)Pabrik subelemen. Fungsi ini membuat instance elemen, dan menambahkannya ke elemen yang sudah ada Nama elemen, nama atribut, dan nilai atribut dapat berupa bytestring atau string Unicode. induk adalah elemen induk. tag adalah nama subelemen. attrib adalah kamus opsional, yang berisi atribut elemen. ekstra berisi atribut tambahan, diberikan sebagai argumen kata kunci. Mengembalikan instance elemen xml. etree. ElementTree. tostring(elemen , pengkodean='us-ascii', method='xml', *, xml_declaration=None, default_namespace=None, short_empty_elements=True)Menghasilkan representasi string dari elemen XML, termasuk semua subelemen. elemen adalah instance. pengkodean adalah penyandian keluaran (standarnya adalah US-ASCII). Gunakan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_51 untuk menghasilkan string Unicode (jika tidak, bytestring dihasilkan). metodenya adalah import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_52, import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()53 atau import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()54 (standarnya adalah import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()52). xml_declaration, default_namespace dan short_empty_elements memiliki arti yang sama seperti di. Mengembalikan string yang disandikan (opsional) yang berisi data XML Baru di versi 3. 4. Parameter short_empty_elements. Baru di versi 3. 8. Parameter xml_declaration dan default_namespace. Berubah di versi 3. 8. Fungsi sekarang mempertahankan urutan atribut yang ditentukan oleh pengguna. xml. etree. ElementTree. tostringlist(elemen , enkode='us-ascii', method='xml', *, xml_declaration=None, default_namespace=None, short_empty_elements=True)Menghasilkan representasi string dari elemen XML, termasuk semua subelemen. elemen adalah instance. pengkodean adalah penyandian keluaran (standarnya adalah US-ASCII). Gunakan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_51 untuk menghasilkan string Unicode (jika tidak, bytestring dihasilkan). metodenya adalah import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_52, import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()53 atau import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()54 (standarnya adalah import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()52). xml_declaration, default_namespace dan short_empty_elements memiliki arti yang sama seperti di. Mengembalikan daftar (opsional) string yang disandikan yang berisi data XML. Itu tidak menjamin urutan tertentu, kecuali bahwa import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()65 Baru di versi 3. 2 Baru di versi 3. 4. Parameter short_empty_elements. Baru di versi 3. 8. Parameter xml_declaration dan default_namespace. Berubah di versi 3. 8. Fungsi sekarang mempertahankan urutan atribut yang ditentukan oleh pengguna. xml. etree. ElementTree. XML(teks , parser=None)Mem-parsing bagian XML dari konstanta string. Fungsi ini dapat digunakan untuk menyematkan "literal XML" dalam kode Python. teks adalah string yang berisi data XML. parser adalah contoh parser opsional. Jika tidak diberikan, parser standar digunakan. Mengembalikan sebuah instance xml. etree. ElementTree. XMLID(teks , parser=None)Mem-parsing bagian XML dari konstanta string, dan juga mengembalikan kamus yang memetakan dari id elemen. s ke elemen. teks adalah string yang berisi data XML. parser adalah contoh parser opsional. Jika tidak diberikan, parser standar digunakan. Mengembalikan tuple yang berisi instance dan kamus XSertakan dukunganModul ini memberikan dukungan terbatas untuk arahan XInclude, melalui modul helper import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()71. Modul ini dapat digunakan untuk menyisipkan subpohon dan string teks ke dalam pohon elemen, berdasarkan informasi di dalam pohon ContohBerikut adalah contoh yang menunjukkan penggunaan modul XInclude. Untuk menyertakan dokumen XML dalam dokumen saat ini, gunakan elemen import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()72 dan setel atribut parse ke import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()52, dan gunakan atribut href untuk menentukan dokumen yang akan disertakan root = ET.fromstring(country_data_as_string)_1 Secara default, atribut href diperlakukan sebagai nama file. Anda dapat menggunakan pemuat khusus untuk mengganti perilaku ini. Perhatikan juga bahwa pembantu standar tidak mendukung sintaks XPointer Untuk memproses file ini, muat seperti biasa, dan teruskan elemen root ke modul root = ET.fromstring(country_data_as_string)_2 Modul ElementInclude menggantikan elemen import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_72 dengan elemen root dari sumber. dokumen xml. Hasilnya mungkin terlihat seperti ini root = ET.fromstring(country_data_as_string)_3 Jika atribut parse dihilangkan, defaultnya adalah "xml". Atribut href diperlukan Untuk menyertakan dokumen teks, gunakan elemen import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_72, dan setel atribut parse ke "text" root = ET.fromstring(country_data_as_string)_4 Hasilnya mungkin terlihat seperti root = ET.fromstring(country_data_as_string)_5 ReferensiFungsixml. etree. ElemenTermasuk. default_loader(href , mengurai, encoding=None)Pemuat bawaan. Pemuat default ini membaca sumber daya yang disertakan dari disk. href adalah URL. parse adalah untuk mode parse baik "xml" atau "teks". encoding adalah pengkodean teks opsional. Jika tidak diberikan, penyandian adalah import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_18. Mengembalikan sumber daya yang diperluas. Jika mode parse adalah import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_52, ini adalah instance ElementTree. Jika mode parse adalah "teks", ini adalah string Unicode. Jika loader gagal, ia dapat mengembalikan Tidak Ada atau memunculkan pengecualianxml. etree. ElemenTermasuk. termasuk(elem , pemuat=None, base_url=None, max_depth=6) Fungsi ini memperluas arahan XInclude. elem adalah elemen root. loader adalah loader sumber daya opsional. Jika dihilangkan, defaultnya adalah. Jika diberikan, itu harus berupa callable yang mengimplementasikan antarmuka yang sama. base_url adalah URL dasar dari file asli, untuk menyelesaikan relatif sertakan referensi file. max_depth adalah jumlah maksimum inklusi rekursif. Terbatas untuk mengurangi risiko ledakan konten berbahaya. Lewati nilai negatif untuk menonaktifkan batasan Mengembalikan sumber daya yang diperluas. Jika mode parse adalah import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_52, ini adalah instance ElementTree. Jika mode parse adalah "teks", ini adalah string Unicode. Jika loader gagal, ia dapat mengembalikan Tidak Ada atau memunculkan pengecualian Baru di versi 3. 9. Parameter base_url dan max_depth. Objek Elemenkelas xml. etree. ElementTree. Elemen(tag , attrib={}, **extra)Kelas elemen. Kelas ini mendefinisikan antarmuka Elemen, dan menyediakan implementasi referensi dari antarmuka ini Nama elemen, nama atribut, dan nilai atribut dapat berupa bytestring atau string Unicode. tag adalah nama elemen. attrib adalah kamus opsional, yang berisi atribut elemen. ekstra berisi atribut tambahan, diberikan sebagai argumen kata kunci menandaiSebuah string yang mengidentifikasi jenis data yang diwakili oleh elemen ini (tipe elemen, dengan kata lain) teksekorAtribut ini dapat digunakan untuk menyimpan data tambahan yang terkait dengan elemen. Nilainya biasanya string tetapi mungkin objek khusus aplikasi apa pun. Jika elemen dibuat dari file XML, atribut teks menyimpan teks di antara tag awal elemen dan anak pertama atau tag akhir, atau >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml')7, dan atribut ekor menampung teks di antara tag akhir elemen dan tag berikutnya . Untuk data XML root = ET.fromstring(country_data_as_string)_6 elemen a memiliki >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml')7 untuk atribut teks dan ekor, elemen b memiliki teks import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()85 dan ekor import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()86, elemen c memiliki teks import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()87 dan ekor >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml')7, dan elemen d memiliki teks >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml')7 dan ekor import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()90 Untuk mengumpulkan teks bagian dalam suatu elemen, lihat , misalnya import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()92 Aplikasi dapat menyimpan objek arbitrer dalam atribut ini attribKamus yang berisi atribut elemen. Perhatikan bahwa meskipun nilai attrib selalu merupakan kamus Python yang dapat diubah, implementasi ElementTree dapat memilih untuk menggunakan representasi internal lain, dan membuat kamus hanya jika seseorang memintanya. Untuk memanfaatkan penerapan tersebut, gunakan metode kamus di bawah jika memungkinkan Metode seperti kamus berikut berfungsi pada atribut elemen jelas()Mereset elemen. Fungsi ini menghapus semua subelemen, menghapus semua atribut, dan menyetel atribut teks dan ekor ke >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml')7dapatkan(kunci , default=None) Mendapat atribut elemen bernama kunci Mengembalikan nilai atribut, atau default jika atribut tidak ditemukan item()Mengembalikan atribut elemen sebagai urutan pasangan (nama, nilai). Atribut dikembalikan dalam urutan sewenang-wenang kunci()Mengembalikan nama atribut elemen sebagai daftar. Nama dikembalikan dalam urutan sewenang-wenang setel(kunci , nilai)Setel kunci atribut pada elemen ke nilai Metode berikut bekerja pada anak elemen (subelemen) tambahkan(subelemen)Menambahkan subelemen elemen ke akhir daftar subelemen internal elemen ini. Menimbulkan jika subelemen bukan an memperluas(subelemen)Menambahkan subelemen dari objek urutan dengan nol atau lebih elemen. Dimunculkan jika subelemen bukan an Baru di versi 3. 2 temukan(cocok , ruang nama=None)Menemukan kecocokan subelemen pertama yang cocok. cocok mungkin nama tag atau a. Mengembalikan instance elemen atau >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml')7. namespaces adalah pemetaan opsional dari awalan namespace ke nama lengkap. Berikan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_99 sebagai awalan untuk memindahkan semua nama tag tanpa awalan dalam ekspresi ke ruang nama yang diberikanfindall(cocok , ruang nama=None) Menemukan semua subelemen yang cocok, dengan nama tag atau. Mengembalikan daftar yang berisi semua elemen yang cocok dalam urutan dokumen. namespaces adalah pemetaan opsional dari awalan namespace ke nama lengkap. Berikan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_99 sebagai awalan untuk memindahkan semua nama tag tanpa awalan dalam ekspresi ke ruang nama yang diberikanfindtext(cocok , default=None, namespaces=None) Menemukan teks untuk pencocokan subelemen pertama yang cocok. cocok mungkin nama tag atau a. Mengembalikan konten teks dari elemen pertama yang cocok, atau default jika tidak ada elemen yang ditemukan. Perhatikan bahwa jika elemen yang cocok tidak memiliki konten teks, string kosong dikembalikan. namespaces adalah pemetaan opsional dari awalan namespace ke nama lengkap. Berikan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_99 sebagai awalan untuk memindahkan semua nama tag tanpa awalan dalam ekspresi ke ruang nama yang diberikanmasukkan(indeks , subelemen) Menyisipkan subelemen pada posisi tertentu dalam elemen ini. Menimbulkan jika subelemen bukan an iter(tag=Tidak ada)Membuat pohon dengan elemen saat ini sebagai root. Iterator mengulangi elemen ini dan semua elemen di bawahnya, dalam urutan dokumen (kedalaman pertama). Jika tag bukan >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml')_7 atau root = ET.fromstring(country_data_as_string)05, hanya elemen yang tagnya sama dengan tag yang dikembalikan dari iterator. Jika struktur pohon diubah selama iterasi, hasilnya tidak terdefinisi Baru di versi 3. 2 iterfind(cocok , ruang nama=None)Menemukan semua subelemen yang cocok, dengan nama tag atau. Mengembalikan iterable yang menghasilkan semua elemen yang cocok dalam urutan dokumen. namespaces adalah pemetaan opsional dari awalan namespace ke nama lengkap Baru di versi 3. 2 itertext()Membuat iterator teks. Iterator mengulang elemen ini dan semua subelemen, dalam urutan dokumen, dan mengembalikan semua teks dalam Baru di versi 3. 2 makeelement(tag , attrib)Membuat objek elemen baru dengan tipe yang sama dengan elemen ini. Jangan panggil metode ini, gunakan fungsi pabrik sebagai gantinya hapus(subelemen)Menghapus subelemen dari elemen. Berbeda dengan metode find*, metode ini membandingkan elemen berdasarkan identitas instance, bukan pada nilai atau konten tag objek juga mendukung metode tipe urutan berikut untuk bekerja dengan subelemen. , , , Peringatan. Elemen tanpa subelemen akan diuji sebagai root = ET.fromstring(country_data_as_string)12. Perilaku ini akan berubah di versi mendatang. Gunakan tes root = ET.fromstring(country_data_as_string)_13 atau root = ET.fromstring(country_data_as_string)14 tertentu sebagai gantinya root = ET.fromstring(country_data_as_string)_7 Sebelum Python 3. 8, urutan serialisasi atribut XML elemen secara artifisial dibuat dapat diprediksi dengan mengurutkan atribut berdasarkan namanya. Berdasarkan urutan dikte yang sekarang dijamin, penataan ulang sewenang-wenang ini telah dihapus di Python 3. 8 untuk mempertahankan urutan di mana atribut awalnya diuraikan atau dibuat oleh kode pengguna Secara umum, kode pengguna harus mencoba untuk tidak bergantung pada urutan atribut tertentu, mengingat Kumpulan Informasi XML secara eksplisit mengecualikan urutan atribut dari penyampaian informasi. Kode harus disiapkan untuk menangani pemesanan apa pun pada input. Dalam kasus di mana keluaran XML deterministik diperlukan, mis. g. untuk penandatanganan kriptografi atau set data uji, serialisasi kanonis tersedia dengan fungsi tersebut Dalam kasus di mana keluaran kanonis tidak dapat diterapkan tetapi urutan atribut tertentu masih diinginkan pada keluaran, kode harus bertujuan untuk membuat atribut secara langsung dalam urutan yang diinginkan, untuk menghindari ketidakcocokan perseptual bagi pembaca kode. Dalam kasus di mana hal ini sulit dicapai, resep seperti berikut ini dapat diterapkan sebelum serialisasi untuk menjalankan perintah secara terpisah dari pembuatan Elemen root = ET.fromstring(country_data_as_string)_8 Objek ElementTreekelas xml. etree. ElementTree. ElementTree(elemen=Tidak ada, file=None)kelas pembungkus ElementTree. Kelas ini mewakili seluruh hierarki elemen, dan menambahkan beberapa dukungan ekstra untuk serialisasi ke dan dari XML standar elemen adalah elemen root. Pohon diinisialisasi dengan konten file XML jika diberikan _setroot(elemen)Menggantikan elemen root untuk pohon ini. Ini membuang isi pohon saat ini, dan menggantinya dengan elemen yang diberikan. Gunakan dengan hati-hati. elemen adalah contoh elemen temukan(cocok , ruang nama=None)Sama seperti , mulai dari akar pohon findall(cocok , ruang nama=None)Sama seperti , mulai dari akar pohon findtext(cocok , default=None, namespaces=None)Sama seperti , mulai dari akar pohon getroot()Mengembalikan elemen root untuk pohon ini iter(tag=Tidak ada)Membuat dan mengembalikan iterator pohon untuk elemen root. Iterator mengulang semua elemen dalam pohon ini, dalam urutan bagian. tag adalah tag yang harus dicari (standarnya adalah mengembalikan semua elemen) iterfind(cocok , ruang nama=None)Sama seperti , mulai dari akar pohon Baru di versi 3. 2 mengurai(sumber , mengurai=None)Memuat bagian XML eksternal ke dalam pohon elemen ini. sumber adalah nama file atau. parser adalah contoh parser opsional. Jika tidak diberikan, parser standar digunakan. Mengembalikan elemen root bagian tulis(file , enkode='us-ascii', xml_declaration=None, default_namespace=None, method='xml', *, short_empty_elements=True)Menulis pohon elemen ke file, sebagai XML. file adalah nama file, atau dibuka untuk menulis. pengkodean adalah penyandian keluaran (standarnya adalah US-ASCII). xml_declaration mengontrol apakah deklarasi XML harus ditambahkan ke file. Gunakan root = ET.fromstring(country_data_as_string)_12 untuk tidak pernah, import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()28 untuk selalu, >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml')7 hanya jika bukan US-ASCII atau UTF-8 atau Unicode (standarnya adalah >>> for rank in root.iter('rank'): .. new_rank = int(rank.text) + 1 .. rank.text = str(new_rank) .. rank.set('updated', 'yes') ... >>> tree.write('output.xml')7). default_namespace menyetel namespace XML default (untuk "xmlns"). metodenya adalah import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_52, import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()53 atau import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()54 (standarnya adalah import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()52). Parameter short_empty_elements hanya kata kunci mengontrol pemformatan elemen yang tidak berisi konten. Jika import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_28 (default), mereka dipancarkan sebagai satu tag yang tertutup sendiri, jika tidak, mereka dipancarkan sebagai sepasang tag awal/akhir Outputnya adalah string () atau biner (). Ini dikendalikan oleh argumen penyandian. Jika penyandian adalah root = ET.fromstring(country_data_as_string)32, hasilnya adalah string; . Perhatikan bahwa ini mungkin bertentangan dengan jenis file jika terbuka; Baru di versi 3. 4. Parameter short_empty_elements. Berubah di versi 3. 8. Metode ini sekarang mempertahankan urutan atribut yang ditentukan oleh pengguna. Ini adalah file XML yang akan dimanipulasi root = ET.fromstring(country_data_as_string)_9 Contoh mengubah atribut “target” dari setiap link di paragraf pertama >>> root.tag 'data' >>> root.attrib {}0 Objek QNamekelas xml. etree. ElementTree. QName(text_or_uri , tag=None)pembungkus QName. Ini dapat digunakan untuk membungkus nilai atribut QName, untuk mendapatkan penanganan namespace yang tepat pada output. text_or_uri adalah string yang berisi nilai QName, dalam bentuk {uri}local, atau, jika argumen tag diberikan, bagian URI dari QName. Jika tag diberikan, argumen pertama diinterpretasikan sebagai URI, dan argumen ini diinterpretasikan sebagai nama lokal. contoh buram Objek TreeBuilderkelas xml. etree. ElementTree. Pembangun Pohon(element_factory=Tidak ada, *, comment_factory=None, pi_factory=None, insert_comments=False, insert_pis=False)Pembuat struktur elemen umum. Pembangun ini mengonversi urutan panggilan metode awal, data, akhir, komentar, dan pi ke struktur elemen yang terbentuk dengan baik. Anda dapat menggunakan kelas ini untuk membangun struktur elemen menggunakan parser XML khusus, atau parser untuk beberapa format mirip XML lainnya element_factory, ketika diberikan, harus bisa dipanggil menerima dua argumen posisi. tag dan dict atribut. Diharapkan untuk mengembalikan instance elemen baru Fungsi comment_factory dan pi_factory, ketika diberikan, harus berperilaku seperti fungsi dan untuk membuat komentar dan memproses instruksi. Jika tidak diberikan, factory default akan digunakan. Ketika insert_comments dan/atau insert_pis benar, komentar/pis akan dimasukkan ke dalam pohon jika muncul di dalam elemen root (tetapi tidak di luarnya) tutup()Menghapus buffer pembangun, dan mengembalikan elemen dokumen tingkat atas. Mengembalikan sebuah instance data(data)Menambahkan teks ke elemen saat ini. datanya adalah string. Ini harus berupa bytestring, atau string Unicode akhir(tag)Menutup elemen saat ini. tag adalah nama elemen. Mengembalikan elemen tertutup mulai(tag , attrs)Membuka elemen baru. tag adalah nama elemen. attrs adalah kamus yang berisi atribut elemen. Mengembalikan elemen yang dibuka komentar(teks)Membuat komentar dengan teks yang diberikan. Jika root = ET.fromstring(country_data_as_string)_38 benar, ini juga akan menambahkannya ke pohon Baru di versi 3. 8 pi(target , teks)Membuat komentar dengan nama dan teks target yang diberikan. Jika root = ET.fromstring(country_data_as_string)_39 benar, ini juga akan menambahkannya ke pohon Baru di versi 3. 8 Selain itu, objek kustom dapat menyediakan metode berikut doctype(nama , pubid, system)Menangani deklarasi doctype. name adalah nama doctype. pubid adalah pengidentifikasi publik. sistem adalah pengidentifikasi sistem. Metode ini tidak ada di kelas default Baru di versi 3. 2 start_ns(awalan , uri)Dipanggil setiap kali parser menemukan deklarasi namespace baru, sebelum callback ________4______42 untuk elemen pembuka yang mendefinisikannya. awalan adalah import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_99 untuk namespace default dan nama awalan namespace yang dideklarasikan sebaliknya. uri adalah URI namespace Baru di versi 3. 8 end_ns(awalan)Dipanggil setelah root = ET.fromstring(country_data_as_string)44 callback dari elemen yang mendeklarasikan pemetaan awalan namespace, dengan nama awalan yang keluar dari ruang lingkup Baru di versi 3. 8 kelas xml. etree. ElementTree. Target C14NWriter(tulis , *, with_comments=False, strip_text=False, rewrite_prefixes=False, qname_aware_tags=None, qname_aware_attrs=None, exclude_attrs=None, exclude_tags=None)C14N 2. 0 penulis. Argumennya sama dengan fungsi. Kelas ini tidak membuat pohon tetapi menerjemahkan peristiwa panggilan balik secara langsung ke dalam bentuk serial menggunakan fungsi tulis Baru di versi 3. 8 Objek XMLParserkelas xml. etree. ElementTree. XMLParser(* , target=None, encoding=None)Kelas ini adalah blok bangunan tingkat rendah dari modul. Ini digunakan untuk penguraian XML berbasis peristiwa yang efisien. Itu dapat memberi makan data XML secara bertahap dengan metode ini, dan peristiwa penguraian diterjemahkan ke API push - dengan memanggil panggilan balik pada objek target. Jika target dihilangkan, standar digunakan. Jika pengkodean diberikan, nilai akan menimpa pengkodean yang ditentukan dalam file XML Berubah di versi 3. 8. Parameter sekarang. Argumen html tidak lagi didukung. tutup()Selesai memasukkan data ke parser. Mengembalikan hasil pemanggilan metode root = ET.fromstring(country_data_as_string)_49 dari target yang diteruskan selama konstruksi; umpan(data) Memasukkan data ke parser. data adalah data yang dikodekan memanggil metode root = ET.fromstring(country_data_as_string)51 target untuk setiap tag pembuka, metode root = ET.fromstring(country_data_as_string)52 untuk setiap tag penutup, dan data diproses dengan metode root = ET.fromstring(country_data_as_string)53. Untuk metode panggilan balik yang didukung lebih lanjut, lihat kelas. memanggil metode target root = ET.fromstring(country_data_as_string)_49. dapat digunakan tidak hanya untuk membangun struktur pohon. Ini adalah contoh penghitungan kedalaman maksimum file XML >>> root.tag 'data' >>> root.attrib {}_1 Objek XMLPullParserkelas xml. etree. ElementTree. XMLPullParser(peristiwa=Tidak ada)Pull parser cocok untuk aplikasi non-blocking. API sisi masukannya mirip dengan , tetapi alih-alih mendorong panggilan ke target panggilan balik, mengumpulkan daftar peristiwa parsing internal dan membiarkan pengguna membacanya. peristiwa adalah urutan peristiwa untuk melaporkan kembali. Acara yang didukung adalah string import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_29, import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()30, import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()31, import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()32, import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()33 dan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()34 (acara "ns" digunakan untuk mendapatkan informasi ruang nama terperinci). Jika acara dihilangkan, hanya import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()_30 acara yang dilaporkanumpan(data) Masukkan data byte yang diberikan ke parser tutup()Memberi sinyal kepada parser bahwa aliran data dihentikan. Tidak seperti , metode ini selalu kembali. Acara apa pun yang belum diambil saat parser ditutup masih dapat dibaca read_events()Mengembalikan iterator atas peristiwa yang telah ditemui dalam data yang diumpankan ke parser. Iterator menghasilkan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()39 pasang, di mana acara adalah string yang mewakili jenis acara (e. g. import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()30) dan elem adalah objek yang ditemui, atau nilai konteks lainnya sebagai berikut
Acara yang diberikan dalam panggilan sebelumnya ke tidak akan dihasilkan lagi. Acara dikonsumsi dari antrian internal hanya ketika diambil dari iterator, sehingga banyak pembaca yang mengulang secara paralel melalui iterator yang diperoleh dari akan memiliki hasil yang tidak dapat diprediksi Catatan hanya menjamin bahwa ia telah melihat karakter ">" dari tag awal ketika memancarkan peristiwa "mulai", jadi atributnya ditentukan, tetapi konten atribut teks dan ekor tidak ditentukan pada saat itu. Hal yang sama berlaku untuk elemen anak; Jika Anda membutuhkan elemen yang terisi penuh, cari acara "akhir". Baru di versi 3. 4 Berubah di versi 3. 8. Acara import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()43 dan import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()44 telah ditambahkan. Pengecualiankelas xml. etree. ElementTree. ParseErrorKesalahan penguraian XML, dimunculkan oleh berbagai metode penguraian dalam modul ini saat penguraian gagal. Representasi string dari instance pengecualian ini akan berisi pesan kesalahan yang mudah digunakan. Selain itu, ia akan memiliki atribut berikut yang tersedia kodeKode kesalahan numerik dari ekspat parser. Lihat dokumentasi untuk daftar kode kesalahan dan artinya posisiTuple baris, nomor kolom, yang menentukan di mana kesalahan terjadi Catatan kaki 1(,,,)String pengkodean yang disertakan dalam keluaran XML harus sesuai dengan standar yang sesuai. Misalnya, “UTF-8” valid, tetapi “UTF8” tidak valid. Lihat dan https. // www. iana. org/penugasan/set-karakter/set-karakter. xhtml Bagaimana cara mengubah nilai atribut XML dengan Python?Solusi. Pertama kita mem-parsing file xml dan melakukan operasi berisi string untuk memeriksa apakah judul buku berisi "Python". Jika string berisi kata kunci, kami menggunakan metode set() untuk mengubah nilai atribut . Jalankan kode contoh di atas dan Anda akan melihat file xml asli telah dimodifikasi.
Bagaimana cara menemukan dan mengganti tag XML?Untuk Mengganti Tag XML
. Press Alt+Insert. Dari menu Bantuan Visual, pilih Ganti Semua Tag XML . Pilih pengenal dan tekan Enter untuk menyelesaikan atau Esc untuk membatalkan operasi.
Bagaimana Anda mem-parsing dan memodifikasi XML dengan Python?Interaksi dengan satu elemen XML dan sub-elemennya dilakukan pada tingkat Elemen. . Properti Elemen PARSING. Kita dapat mengurai data XML dari string atau dokumen XML. Mempertimbangkan xml. etree. ElementTree sebagai ET. ET. parse('Nama file'). getroot() -ET Bagaimana cara membaca nilai atribut dalam XML menggunakan Python?Dapatkan Nilai Atribut yang Relevan
. findall(level) , di mana level adalah posisi yang diinginkan ( |