Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menyelesaikan 'awalan 'burung hantu' tidak ditemui dalam peta awalan' Ralat Apabila Menghuraikan XML Ruang Nama dengan ElementTree Python?
Menghuraikan XML dengan Ruang Nama dalam Python Menggunakan ElementTree
Apabila menghuraikan XML dengan ruang nama dalam Python menggunakan ElementTree, seseorang mungkin menghadapi ralat jika ruang nama awalan yang digunakan dalam XML tidak secara eksplisit ditakrifkan.
Masalah:
Seorang pengguna mempunyai XML berikut:
<rdf:RDF ...> <owl:Class> <rdfs:label>...</rdfs:label> ... </owl:Class> </rdf:RDF>
Setelah cuba menghuraikan XML menggunakan ElementTree dengan ruang nama lalai pengendalian, ralat berikut ialah dikembalikan:
SyntaxError: prefix 'owl' not found in prefix map
Penyelesaian:
Untuk menyelesaikan ralat ini, pemetaan ruang nama eksplisit mesti diberikan kepada kaedah ElementTree yang bertanggungjawab untuk menghuraikan XML. Ini boleh dicapai dengan menghantar kamus kepada argumen ruang nama bagi kaedah find().
namespaces = {'owl': 'http://www.w3.org/2002/07/owl#'} root = tree.getroot() root.findall('owl:Class', namespaces)
Dengan menentukan kamus ruang nama, penghurai ElementTree boleh memadankan awalan ruang nama ('owl') dengan yang betul URL ruang nama, membolehkannya berjaya mendapatkan semula burung hantu:nod Kelas.
Tambahan Pertimbangan:
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan 'awalan 'burung hantu' tidak ditemui dalam peta awalan' Ralat Apabila Menghuraikan XML Ruang Nama dengan ElementTree Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!