gpt4 book ai didi

Python Lxml - 用新数据附加现有的 xml

转载 作者:太空狗 更新时间:2023-10-29 21:21:31 25 4
gpt4 key购买 nike

我是 python/lxml 的新手 在阅读了 lxml 站点并深入研究 python 之后,我找不到解决我的 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>
-------------------------------

我正在尝试将一个子元素附加到根元素并将整个文件作为新的 xml 写回或覆盖现有的 xml。目前我只写一行。

from lxml import etree
tree = etree.parse('addressbook.xml')
root = tree.getroot()
oSetroot = etree.Element(root.tag)
NewSub = etree.SubElement ( oSetroot, 'CREATE_NEW_SUB' )
doc = etree.ElementTree (oSetroot)
doc.write ( 'addressbook1.xml' )

TIA

最佳答案

可以通过复制旧树的所有(不仅仅是根标签!-)来制作一棵新树,但编辑现有树要简单得多就地(为什么不呢?-)...:

tree = etree.parse('addressbook.xml')
root = tree.getroot()
NewSub = etree.SubElement ( root, 'CREATE_NEW_SUB' )
tree.write ( 'addressbook1.xml' )

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

(我希望这是您正在寻找的效果...?-)

关于Python Lxml - 用新数据附加现有的 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3648689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com