Сортировка файла xml по тексту подэлемента с использованием ElementTree в python - PullRequest
0 голосов
/ 17 января 2020

Я новичок в python .. пожалуйста, помогите мне отсортировать данный XML файл, используя элемент Tree в python. Я хочу отсортировать данный файл по дате ..

<record>
    <doc>
        <title> Mae Nee Nee </title>
        <name> b1 </name>
        <name> a1 </name>
        <year>2019</year>
    </doc>
    <doc>
        <title> Mae Nee Lee </title>
        <name> A </name>
        <name> B </name>
        <name> C </name>
        <year> 2000 </year>
    </doc>
    <doc>
        <title> Mae Nee Nee </title>
        <name> D </name>
        <year> 2011 </year>
    </doc>
    <doc>
        <title> 1ee 2ee </title>
        <name> N </name>
        <year> 2007 </year>
    </doc>
</record>

1 Ответ

0 голосов
/ 18 января 2020

Попробуйте следующий код:

tree = et.parse('record.xml')
root = tree.getroot()
data = []
for elem in root.findall('doc'):
    key = elem.findtext('year')
    key = key.strip()
    data.append((key, elem))
data.sort()
root[:] = [ item[1] for item in data ]
tree.write('record_new.xml')

Примечание key = key.strip() инструкция. Я добавил его, потому что заметил, что ваши теги year содержат окружающие пробелы, но сортировку следует выполнять только по номеру года.

На самом деле вам лучше позаботиться об удалении любых окружающих пробелов в ваших XML тегах.

...