【问题标题】:Sorting xml file by subelement text using ElementTree in python在python中使用ElementTree按子元素文本对xml文件进行排序
【发布时间】:2020-01-17 07:02:47
【问题描述】:

我是 python 新手。请帮助我使用 python 中的元素树对给定的 XML 文件进行排序。我想按日期对给定文件进行排序..

<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>

【问题讨论】:

    标签: xml sorting elementtree


    【解决方案1】:

    试试下面的代码:

    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 标记中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多