Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana Menghuraikan XML dengan Berkesan dengan Ruang Nama dalam ElementTree Python?

Bagaimana Menghuraikan XML dengan Berkesan dengan Ruang Nama dalam ElementTree Python?

Linda Hamilton
Lepaskan: 2024-12-13 21:20:15
asal
418 orang telah melayarinya

How to Effectively Parse XML with Namespaces in Python's ElementTree?

Menghuraikan XML dengan Ruang Nama dalam Python melalui 'ElementTree': Menyelesaikan Awalan Ruang Nama

Dalam percubaan untuk menghuraikan dokumen XML dengan berbilang ruang nama menggunakan ElementTree Python, ralat biasa timbul disebabkan oleh awalan ruang nama yang tidak dikenali. Untuk membetulkan perkara ini, menyediakan kamus ruang nama yang eksplisit adalah perlu.

Kaedah .find(), findall(), dan iterfind() memerlukan pemetaan awalan ruang nama ke URL. Untuk XML yang disediakan, cipta kamus ruang nama:

namespaces = {'owl': 'http://www.w3.org/2002/07/owl#'}
Salin selepas log masuk

Gunakan kamus ini untuk mencari elemen:

# Find all owl:Class tags
root.findall('owl:Class', namespaces)
Salin selepas log masuk

ElementTree akan menggunakan kamus ruang nama untuk menyelesaikan awalan 'burung hantu' secara automatik ke URLnya. Ini bersamaan dengan:

# Resolve the prefix to its URL
owl_namespace = 'http://www.w3.org/2002/07/owl#'
root.findall('{' + owl_namespace + '}Class')
Salin selepas log masuk

Selain itu, anda boleh menggunakan atribut .nsmap untuk resolusi ruang nama. Walau bagaimanapun, untuk sokongan ruang nama yang optimum, pertimbangkan untuk beralih kepada perpustakaan lxml. Ia mengautomasikan koleksi ruang nama dan menyediakan pengendalian ruang nama yang lebih baik secara keseluruhan.

Atas ialah kandungan terperinci Bagaimana Menghuraikan XML dengan Berkesan dengan Ruang Nama dalam ElementTree Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan