gpt4 book ai didi

python - 在特定位置插入xml节点

转载 作者:数据小太阳 更新时间:2023-10-29 01:54:49 25 4
gpt4 key购买 nike

我想构建以下 xml:

<Item>
<Name>Hello</Name>
<Date>2014-01-01</Date>
<Hero>1</Helo>
</Item>

给定以下代码结构,我将如何插入 <Date>节点英雄节点之前?

item = etree.SubElement(self.xml_node, 'Item')
etree.SubElement(item, 'Name').text = 'Hello'
etree.SubElement(item, 'Hero').text = 1
# Now, how to insert the 'Date' element before the Hero element?

最佳答案

使用 etree.SubElement始终将子元素附加到父元素的末尾 item .因此,要在特定位置插入一个新元素,请使用 item.insert(pos, subelement) :

import lxml.etree as etree
xml_node = etree.Element("node")
item = etree.SubElement(xml_node, 'Item')
etree.SubElement(item, 'Name').text = 'Hello'
etree.SubElement(item, 'Hero').text = '1'
etree.SubElement(item, 'Date').text = '2014-01-01'
item.insert(1, item[-1])
print(etree.tostring(xml_node, pretty_print=True))

产量

<node>
<Item>
<Name>Hello</Name>
<Date>2014-01-01</Date>
<Hero>1</Hero>
</Item>
</node>

ElementTree 中的每个节点只能出现在一个地方。所以虽然

etree.SubElement(item, 'Date').text = '2014-01-01'

放置<Date> <item> 末尾的节点,

item.insert(1, item[-1])

移动 item 中的最后一个节点,即 <Date>节点,到位置 1(使其成为 <Item> 中的第二个子节点)。

关于python - 在特定位置插入xml节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30674162/

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