使用elementtree.tostring合并删除了我的xml的处理指令

时间:2019-04-30 10:46:31

标签: python xml tostring elementtree

我正在使用Python elemntTree,以便将几个xml文件合并为一个。 这是我为此编写的代码:

xml_files = glob.glob('*_to_merge.xml')
xml_element_tree = None
for xml_file in xml_files:
    data = ElementTree.parse(xml_file).getroot()
    for result in data.iter('root'):
        if xml_element_tree is None:
            xml_element_tree = data 
            insertion_point = xml_element_tree.findall("./insert")[0]
        else:
            insertion_point.extend(result) 

op_res = ElementTree.tostring(xml_element_tree).decode("utf-8")

file = 'merged.xml'
with open(file, 'w') as outfile:   
    outfile.write(op_res)  

我得到的文件确实包含所有要合并的文件。问题是它们包含处理指令<? ….. ?>,但不幸的是不再出现在结果xml中。因此它们已被忽略/从代码中删除。

谁能帮助我找到一种在不丢失处理说明的情况下合并我的文件的方法。

谢谢。

0 个答案:

没有答案