如何使用 python 将 XML 元素添加到 XML 文件中的现有文本

问题描述 投票:0回答:1

我遇到的问题是,在我的 xml 文件中,某些值未声明为 XMl 元素。但是为了进一步处理,我需要它们成为一个元素。 例子:

        <A id="0">
            <B>Lorem ipsum</B>
            <C>100</C>
            12.34
        </A>

最后 XML 文件应该类似于这样:

        <A id="0">
            <B>Lorem ipsum</B>
            <C>100</C>
            <D>12.34</D>
        </A>

我查看了 varoius python 文档,但只找到了一种添加具有值的新元素的方法。

python xml element elementtree xml-attribute
1个回答
0
投票

您可以使用

xml.etree.ElementTree
中的构建来做到这一点:

import xml.etree.ElementTree as ET

tree = ET.parse('Start.xml')
root = tree.getroot()

# Show current XML
ET.dump(root)

# catch the tail value
for elem in root.iter():
    tail_text = elem.tail

# reset the tail value
for elem in root.iter():
    if elem.tag =="C":
        elem.tail = '\n'

# define new node
ET.SubElement(root, "D")

# assign the new nodes text
for elem in root.iter():
    if elem.tag == "D":
        elem.text = tail_text

# Show changed XML        
ET.dump(root)

# write the changed tree to a file
tree.write("new.xml", encoding='utf-8', xml_declaration=True)
© www.soinside.com 2019 - 2024. All rights reserved.