python xml-如何从另一个xml插入元素

时间:2019-04-23 18:59:37

标签: python xml

我已经简化了这样的目标xml:

<workflow>
    <tasks>
        ...
    </tasks>
</workflow>

然后我有带有元素的源xml:

<task>
    <description>description</description>
    <name>test task 1</name>
    <sysID>410d6c0bc0a8</sysID>
    <type>Windows</type>
    <version>2</version>
</task>
<task>
    <description>description</description>
    <name>test task 2</name>
    <sysID>410d6880c0a8</sysID>
    <type>Windows</type>
    <version>9</version>
</task>

有人会建议我,从源文件向目标文件中的任务插入任务的最佳方法是什么?

我要做的是像这样组成整个xml文件。

1 个答案:

答案 0 :(得分:1)

这里

import xml.etree.ElementTree as ET

src_tree = ET.parse('src.xml')
src_tasks = src_tree.findall('.//task')

target_tree = ET.parse('target.xml')
target_tasks_root = target_tree.find('.//tasks')

for src_task in src_tasks:
    target_tasks_root.append(src_task)

ET.dump(target_tree)

src.xml

<tasks>
    <task>
        <description>description</description>
        <name>test task 1</name>
        <sysID>410d6c0bc0a8</sysID>
        <type>Windows</type>
        <version>2</version>
    </task>
    <task>
        <description>description</description>
        <name>test task 2</name>
        <sysID>410d6880c0a8</sysID>
        <type>Windows</type>
        <version>9</version>
    </task>
</tasks>

target.xml

<workflow>
    <tasks>

    </tasks>
</workflow>

输出

<workflow>
    <tasks>

    <task>
        <description>description</description>
        <name>test task 1</name>
        <sysID>410d6c0bc0a8</sysID>
        <type>Windows</type>
        <version>2</version>
    </task>
    <task>
        <description>description</description>
        <name>test task 2</name>
        <sysID>410d6880c0a8</sysID>
        <type>Windows</type>
        <version>9</version>
    </task>
</tasks>
</workflow>