【问题标题】:Finding XML tags and inserting new tags in particular position in Python3 using xml.etree.ElementTree使用 xml.etree.ElementTree 在 Python3 中的特定位置查找 XML 标记并插入新标记
【发布时间】:2019-01-24 05:36:39
【问题描述】:

我有一个如下格式的示例文件。

源 XML 数据:

<nametag dummy1 ="YES" dummy2 ="PASS THROUGH" >
            <PARTITION DESCRIPTION ="" NAME ="Partition #1"/>
            <PARTITION DESCRIPTION ="" NAME ="Partition #2"/>
            <PARTITION DESCRIPTION ="" NAME ="Partition #3"/>
            <PARTITION DESCRIPTION ="" NAME ="Partition #4"/>
            <PARTITION DESCRIPTION ="" NAME ="Partition #5"/>
            <PARTITION DESCRIPTION ="" NAME ="Partition #6"/>

</nametag>

目标:

<nametag dummy1 ="YES" dummy2 ="PASS THROUGH" >
            <PARTITION DESCRIPTION ="" NAME ="Partition #1"/>
            <PARTITION DESCRIPTION ="" NAME ="Partition #2"/>
            <PARTITION DESCRIPTION ="" NAME ="Partition #3"/>
            <PARTITION DESCRIPTION ="" NAME ="Partition #4"/>
            <PARTITION DESCRIPTION ="" NAME ="Partition #5"/>
            <PARTITION DESCRIPTION ="" NAME ="Partition #6"/>
<newtag value=1 value=2/>
</nametag>

我能够通过整个文档并找到甚至能够通过标签。我的要求是找到最后一个标签并添加一个新的标签元素,如上面给出的目标 xml 中所述。订单项的数量并不总是相同,因此通过固定迭代循环将不起作用。

我必须找到最后一个标签并在其后插入“”。

需要查找它是否是最后一个标签。 我可以使用类似于下面的代码来解析 xml 文件。

import xml.etree.ElementTree as ET
tree = ET.parse('some.xml')
root = tree.getroot()
for partition in root.iter('PARTITION'):
    partitiondetail = partition.get('NAME')
    if partitiondetail == 'somepattern':
        print(partitiondetail)

【问题讨论】:

    标签: python-3.x xml-parsing


    【解决方案1】:

    这解决了我的问题。

    for element in root.iter('nametag'):
        new_subelement = ET.Element("newtag", value1 ="1", value2="2")
        element.append(new_subelement)
    
    tree.write('output.xml')
    

    这会将所需的 xml 数据写入新文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      • 2010-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多