我正在尝试使用xml.etree.ElementTree来解析xml文件、查找特定标记、将子标记附加到该标记、将另一个子标记附加到新创建的标记并将文本添加到后一个子标记。
我的XML:
<root>
<a>
<b>
<c>text1</c>
</b>
<b>
<c>text2</c>
</b>
</a>
</root>
所需的XML:
<root>
<a>
<b>
<c>text1</c>
</b>
<b>
<c>text2</c>
</b>
<b>
<c>text3</c>
</b>
</a>
</root>
当前代码:
import xml.etree.ElementTree as ET
tree = ET.parse('test.xml')
root = tree.getroot()
for x in root.iter():
if (x.tag == 'a'):
ET.SubElement(x, 'b')
ET.SubElement(x, 'c')
#add text
除了“c”作为“a”的子代而不是“b”之外,这似乎很有效
就像这样:
<root>
<a>
<b>
<c>test1</c>
</b>
<b>
<c>test2</c>
</b>
<b /><c/></a>
</root>
另外,如何向新创建的元素“c”添加文本?我可以反复搜索,直到找到没有文本的a标记“c”,但必须有更好的方法。
我更喜欢定义自己的添加文本的函数:
使用起来非常方便:
您需要指定
b
作为c
的父元素。另外,要获取
a
标记,不需要循环——只需获取根(a
)。印刷品:
相关问题 更多 >
编程相关推荐