Mengabaikan Ruang Nama XML dalam ElementTree
Kaedah mencari dan mencari ElementTree memerlukan pendekatan sedar ruang nama apabila mencari elemen daripada fail XML yang mengandungi ruang nama. Walau bagaimanapun, ini boleh menyusahkan jika banyak teg memerlukan ruang nama.
Mengabaikan Ruang Nama dengan Iterparse
Untuk mengabaikan ruang nama, kami boleh menggunakan kaedah iterparse ElementTree. Begini caranya:
<code class="python">from io import StringIO # Python 2: import from StringIO instead import xml.etree.ElementTree as ET # Parse the XML file it = ET.iterparse(StringIO(xml)) # Strip namespace from tags for _, el in it: _, _, el.tag = el.tag.rpartition('}') # strip ns root = it.root</code>
Pendekatan ini mengubah suai nama teg dengan mengalih keluar ruang nama, membolehkan lokasi elemen lebih mudah tanpa menyatakan ruang nama secara eksplisit. Seperti yang dicadangkan dalam perbincangan di sini, teknik ini memberikan fleksibiliti yang lebih besar dalam mengendalikan berbilang ruang nama dan alias.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengabaikan ruang nama XML apabila menggunakan kaedah findall dan cari ElementTree?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!