Работя върху 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