import xml.etree.ElementTree as ET
def function(root):
new_element = ET.SubElement(root, "abc")
new_element.set("name", "Jonas")
new_element.text = "This is text"
tree = ET.parse("test.xml")
root = tree.getroot()
# Before
print ET.tostring(root)
for element in root.findall("./abc"):
function(root)
# After
print ET.tostring(root)
在此之前:
^{pr2}$
之后:
<root>
<abc>SomeTree1</abc>
<abc name="Jonas">This is text</abc>
</root>
import xml.etree.ElementTree as ET
def function(element):
element.text = "New text"
element.tag = "New tag"
element.set("name", "Jonas")
tree = ET.parse("test.xml")
root = tree.getroot()
# Before
print ET.tostring(root)
for element in root.findall("./abc"):
function(element)
# After
print ET.tostring(root)
在此之前:
^{pr2}$
之后:
<root>
<New tag name="Jonas">New text</New tag>
</root>
可以将树的
root
传递给函数,然后使用ElementTree.SubElement
向root
添加新元素。我用过你的例子:在此之前:
^{pr2}$之后:
请注意,我自己已经润色了xml,它在默认情况下并不漂亮。如果你想要漂亮的打印,请查看this答案。在
编辑:抱歉,我从评论中认为您想添加一个新元素,而不是替换当前元素。要替换该元素,您可以修改上面的函数以接受元素,然后在删除原始元素之前添加一个新元素,或者直接修改现有元素:
在此之前:
^{pr2}$之后:
相关问题 更多 >
编程相关推荐