По сути, я хочу преобразовать и xml в json , используя python3 и библиотеку lxml . Здесь важно то, что я хочу сохранить все текст , хвосты , теги и порядок в xml. Ниже приведен пример того, что должна делать моя программа:
Что у меня
<root>
<tag>
Some tag-text<subtag>Some subtag-text</subtag> Some tail-text
</tag>
</root>
Что я хочу (python dict / json)
{
"root":{
"tag":[
{"text":"Some tag-text"},
{"subtag":{"text":"Some subtag-text"}},
{"text":"Some tail-text"}
]
}
}
Это просто очень упрощенный пример. Файлы, которые мне нужно преобразовать, намного больше и имеют больше вложений.
Кроме того, я не могу использовать для этого библиотеку xmltodict, только lxml.
Я почти на 99% уверен, что есть какой-то элегантный способ сделать это рекурсивно, но до сих пор я не смог написать решение, которое работает так, как я хочу.
Большое спасибо за помощь
РЕДАКТИРОВАТЬ: Почему этот вопрос не является дубликатом Преобразование XML в JSON с использованием Python?
Я понимаю, что не существует такой вещи, как один к одному , отображающей из xml в json. Я специально спрашиваю, как сохранить порядок текста, как в примере выше.
Кроме того, использование xmltodict не достигает этой цели. F.eg, преобразование xml из приведенного выше примера с xmltodict приведет к следующей структуре:
root:
tag:
text: 'Some tag-text Some tail-text'
subtag: 'Some subtag-text'
Вы можете видеть, что хвостовая часть "Некоторый текст хвоста" была объединена с "Некоторый текст тега"
спасибо