import xml.etree.ElementTree as ET
def addCommentInXml():
fileXml ='C:\Users\Documents\config.xml'
tree = ET.parse(fileXml)
root = tree.getroot()
comment = ET.Comment('TEST')
root.insert(1, comment) # 1 is the index where comment is inserted
tree.write(fileXml, encoding='UTF-8', xml_declaration=True)
print("Done")
它正在更新xml如下,请建议如何在xml声明行后添加:
<?xml version='1.0' encoding='UTF-8'?>
<ScopeConfig Checksum="5846AFCF4E5D02786">
<ExecutableName>STU</ExecutableName>
<!--TEST--><ZoomT2Encoder>-2230</ZoomT2Encoder>
ElementTree XML API不允许这样做。Comment
工厂函数的文档明确地声明:
ElementTree将只包含注释节点,如果它们已经存在
但是您想在树之外插入注释。TreeBuilder
类的文档甚至更明确:
当insert_comments和/或insert_pis为真时,comments/pis将为真如果它们出现在根元素中(但不是),则插入到树中在它之外)
所以我建议写出没有注释的XML文件,使用这个API,然后作为纯文本(不是解析的XML)读取文件,在第一行之后添加注释。