Парсинг XML-файла (в данном случае svg) в Python удобен, но как только в файле есть пространства имен, ничего не работает.Почему у библиотеки xml в Python такое странное поведение?Что означает пространство имен для библиотеки Python?
Если бы у моего файла не было пространства имен, я мог бы легко сделать следующий код и получить все элементы:
import xml.etree.ElementTree as ET
tree = ET.parse('model1.svg')
root = tree.getroot()
lst = root.findall('g/g/g/g')
print(lst)
Но так как у него есть пространство имен:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="temp" width="1809.6200256347656" height="1247.809829711914" version="1.1" viewBox="0 0 1809.6200256347656 1247.809829711914">
Ответ: []
Если я пытаюсь напечатать root
, я получаю это:
<Element '{http://www.w3.org/2000/svg}svg' at 0x7fbc45154ea8>
вместо этого:
<Element 'svg' at 0x7f8ee9377368>
ТакЯ просто не могу с этим работать.Как я могу деактивировать / игнорировать это?