使用Python元素树尝试使用循环将子元素插入子节点,但丢失根端节点。
我有以下XML的参数filename = / Desktop / test.xml,并传入参数“ a,b,c”
<root><A></A></root>
代码:
#!/usr/bin/env python
import argparse
from xml.etree import ElementTree as ET
def get_args():
""" Parse and return the arguments of the application """
parser = argparse.ArgumentParser(description = "Replace ")
parser.add_argument('filename',
action = 'store',
help = '')
parser.add_argument('s',
action = 'store',
help = '')
return parser.parse_args()
def appendSS(p, ss):
for s in ss.split(','):
w = ET.Element("W")
w.set("name",s)
p.append(w)
if __name__ == '__main__':
""" The starting point of the application """
args = get_args()
doc = ET.parse(args.filename)
root = doc.getroot()
appendSS(root.find("A"), args.s)
tree = ET.ElementTree(root)
if tree.write(args.filename):
print ("%s was updated successfully!" % args.filename)
else:
print ("failed to update %s" % args.filename)
预期:
<root><A><W name="a"/><W name="b"/><W name="c"/></A></root>
实际:
<root><A><W name="a"/><W name="b"/><W name="c"/></A>
还会收到“无法更新<filename>
”错误消息。
答案 0 :(得分:0)
进一步调查后,缺少的是“猫”中的。想知道为什么猫会删除它?我做了一棵树。转储,在那里。