我想合併多個XML文件一起使用Python和沒有外部庫。 XML文件具有嵌套元素。合併xml文件與嵌套元素沒有外部庫
示例文件1:
<root>
<element1>textA</element1>
<elements>
<nested1>text now</nested1>
</elements>
</root>
示例文件2:
我想:
<root>
<element1>textA</element1>
<element2>textB</element2>
<elements>
<nested1>text after</nested1>
<nested2>new text</nested2>
</elements>
</root>
我試過的東西:
from xml.etree import ElementTree as et
def combine_xml(files):
first = None
for filename in files:
data = et.parse(filename).getroot()
if first is None:
first = data
else:
first.extend(data)
if first is not None:
return et.tostring(first)
我會得到什麼:
<root>
<element1>textA</element1>
<elements>
<nested1>text now</nested1>
</elements>
<element2>textB</element2>
<elements>
<nested1>text after</nested1>
<nested2>new text</nested2>
</elements>
</root>
我希望你能看到並理解我的問題。我正在尋找一個適當的解決方案,任何指導都會很棒。
爲了澄清問題,使用我現有的解決方案,嵌套元素不合並。
完美的工作,謝謝,我剛開始寫我自己的代碼。 :) – 2013-02-14 16:32:14
很好,謝謝。我們還需要合併屬性。可以通過在替換元素文本後在'combine_element'和'mapping [el.tag] .attrib.update(el.attrib)'開始處添加'one.attrib.update(other.attrib)'來完成。 – 2013-11-04 18:38:55
哦,對了,我忘記了屬性。接得好。 – jadkik94 2013-11-06 20:09:28