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#'}
Gunakan kamus ini untuk mencari elemen:
# Find all owl:Class tags root.findall('owl:Class', namespaces)
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')
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!