Я работаю над парсером xml. Цель состоит в том, чтобы проанализировать ряд различных XML-файлов, где префиксы и теги остаются согласованными, но пространства имен меняются.
Поэтому я пытаюсь либо:
- чтобы разобрать xml просто
<prefix:tags>
без разрешения (замены) префикса пространством имен. Префиксы остаются неизменными от документа к документу. - для автоматической загрузки пространств имен, чтобы идентификатор (
<prefix:tag>
) можно было заменить соответствующим пространством имен. - просто разобрать xml по тегу
Я пробовал с xml.etree.ElementTree
.
Я также просмотрел lxml
. Я не нашел никаких параметров конфигурации XMLParser в lxml, который мог бы мне помочь, хотя здесь я мог прочитать ответ, в котором автор предполагает, что lxml
должен автоматически собирать для меня пространства имен.
Интересно, что parsed_file = etree.XML(file)
завершается с ошибкой:
lxml.etree.XMLSyntaxError: Start tag expected, '<' not found, line 1, column 1
Один из примеров файлов, которые я хотел бы разобрать, приведен здесь
items = tree.xpath("*[local-name(.) = 'a_tag_goes_here']")
вроде справляется со своей задачей - person NoIdeaHowToFixThis   schedule 15.05.2014