我正在尝试合并两个 xml 文件。这些文件包含相同的整体结构,但细节不同。
文件 1.xml:
<book>
<chapter id="113">
<sentence id="1">
<word id="128160">
<POS Tag="V"/>
<grammar type="STEM"/>
<Aspect type="IMPV"/>
<Number type="S"/>
</word>
<word id="128161">
<POS Tag="V"/>
<grammar type="STEM"/>
<Aspect type="IMPF"/>
</word>
</sentence>
<sentence id="2">
<word id="128162">
<POS Tag="P"/>
<grammar type="PREFIX"/>
<Tag Tag="bi+"/>
</word>
</sentence>
</chapter>
</book>
文件 2.xml:
<book>
<chapter id="113">
<sentence id="1">
<word id="128160">
<concept English="joke"/>
</word>
<word id="128161">
<concept English="romance"/>
</word>
</sentence>
<sentence id="2">
<word id="128162">
<concept English="happiness"/>
</word>
</sentence>
</chapter>
</book>
所需的输出是:
<book>
<chapter id="113">
<sentence id="1">
<word id="128160">
<concept English="joke"/>
<POS Tag="V"/>
<grammar type="STEM"/>
<Aspect type="IMPV"/>
<Number type="S"/>
</word>
<word id="128161">
<concept English="romance"/>
<POS Tag="V"/>
<grammar type="STEM"/>
<Aspect type="IMPF"/>
</word>
</sentence>
<sentence id="2">
<word id="128162">
<concept English="happiness"/>
<POS Tag="P"/>
<grammar type="PREFIX"/>
<Tag Tag="bi+"/>
</word>
</sentence>
</chapter>
</book>
好的,我尝试在路径中执行此操作,但没有得到所需的输出:
import os, os.path, sys
import glob
from xml.etree import ElementTree
output = open('merge.xml','w')
files="sample"
xml_files = glob.glob(files +"/*.xml")
xml_element_tree = None
for xml_file in xml_files:
data = ElementTree.parse(xml_file).getroot()
# print ElementTree.tostring(data)
for word in data.iter('word'):
if xml_element_tree is None:
xml_element_tree = data
insertion_point = xml_element_tree.findall("book/chapter/sentence/word/*")
else:
insertion_point.extend(word)
if xml_element_tree is not None:
print>>output, ElementTree.tostring(xml_element_tree)
请帮忙