Я написал довольно простой фильтр в python, используя ElementTree, чтобы преобразовать контексты некоторых XML файлов. И это работает, более или менее.
Но он переупорядочивает атрибуты различных тегов, и я бы хотел, чтобы это не делалось.
Кто-нибудь знает переключатель, который я могу сделать, чтобы он сохранял их в указанном порядке?
Контекст для этого
Я работаю с инструментом физики частиц, который имеет сложную, но необычно ограниченную систему настройки на основе xml файлов. Среди множества настроек такой путь - это пути к различным статическим файлам данных. Эти пути жестко закодированы в существующий xml, и нет возможности устанавливать или изменять их на основе переменных среды, а в нашей локальной установке они обязательно находятся в другом месте.
Это не катастрофа, потому что комбинированный инструмент управления источником и строкой, который мы используем, позволяет нам затенять определенные файлы локальными копиями. Но даже считал, что поля данных статичны, а xml - нет, поэтому я написал script для исправления путей, но с перестановкой атрибутов различия между локальной и главной версиями сложнее читать, чем необходимо.
Это мой первый раз, когда ElementTree для вращения (и только мой пятый или шестой проект python), поэтому, возможно, я просто делаю это неправильно.
Сказанное для простоты код выглядит следующим образом:
tree = elementtree.ElementTree.parse(inputfile)
i = tree.getiterator()
for e in i:
e.text = filter(e.text)
tree.write(outputfile)
Разумный или немой?
Ссылки по теме: