PythonLXML-使用新数据附加现有xml

PythonLXML-使用新数据附加现有xml,python,xml,lxml,Python,Xml,Lxml,在阅读了lxml站点并深入研究python之后,我对python/lxml还是个新手,我无法找到解决n00b问题的方法。我有以下xml示例: --------------- <addressbook> <person> <name>Eric Idle</name> <phone type='fix'>999-999-999</phone> <phone type=

在阅读了lxml站点并深入研究python之后,我对python/lxml还是个新手,我无法找到解决n00b问题的方法。我有以下xml示例:

---------------
<addressbook>
    <person>
        <name>Eric Idle</name>
        <phone type='fix'>999-999-999</phone>
        <phone type='mobile'>555-555-555</phone>
        <address>
            <street>12, spam road</street>
            <city>London</city>
            <zip>H4B 1X3</zip>
        </address>
    </person>
</addressbook>
-------------------------------
TIA

您可以通过复制旧树(不仅仅是根标记!-)的所有来创建新树,但编辑现有树要简单得多(为什么不?-)…:

它放入
addressbook1.xml

<addressbook>
    <person>
        <name>Eric Idle</name>
        <phone type="fix">999-999-999</phone>
        <phone type="mobile">555-555-555</phone>
        <address>
            <street>12, spam road</street>
            <city>London</city>
            <zip>H4B 1X3</zip>
        </address>
    </person>
<CREATE_NEW_SUB /></addressbook>

埃里克·伊德尔
999-999-999
555-555-555
士巴姆道十二号
伦敦
H4B 1X3

(我希望这就是您想要的效果…?-)

请注意,我编辑了您的Q以清晰地格式化代码和XML——同时编写了一个包含代码(或类似内容,如XML)的Q,突出显示这些块,然后单击文本上方图标行上看起来像0和1的小正方形的图标——这是实现格式设置的最简单方法(只需将整个块缩进四个空格,并确保前后有相等的空行——这就是单击图标的作用,顺便说一句;-).@Alex,谢谢你,在这么短的时间内学到这么多东西+1000对你来说,先生,是的,确实如此!把头撞在桌子上谢谢@纳撒尼尔,不客气!一旦你尝试了答案的建议,如果它工作得很好并且对你有帮助,记得“接受”答案(通过点击答案左边的复选标记形状的图标)——这就是核心堆栈溢出礼仪!-)。
tree = etree.parse('addressbook.xml')
root = tree.getroot()
NewSub = etree.SubElement ( root, 'CREATE_NEW_SUB' )
tree.write ( 'addressbook1.xml' )
<addressbook>
    <person>
        <name>Eric Idle</name>
        <phone type="fix">999-999-999</phone>
        <phone type="mobile">555-555-555</phone>
        <address>
            <street>12, spam road</street>
            <city>London</city>
            <zip>H4B 1X3</zip>
        </address>
    </person>
<CREATE_NEW_SUB /></addressbook>