I want to split a XML file into multiple files. My workstation is very limited to Eclipse Mars with Xalan 2.7.1.
I can also use Python, but never used it before.
Use Python ElementTree.
Create a file e.g. xmlsplitter.py. Add the code below (where file.xml is your xml file and assuming every row has a unique NAME element.).
import xml.etree.ElementTree as ET
context = ET.iterparse('file.xml', events=('end', ))
for event, elem in context:
if elem.tag == 'row':
title = elem.find('NAME').text
filename = format(title + ".xml")
with open(filename, 'wb') as f:
f.write("\n")
f.write(ET.tostring(elem))
Run it with
python xmlsplitter.py
Or if the names are not unique:
import xml.etree.ElementTree as ET
context = ET.iterparse('file.xml', events=('end', ))
index = 0
for event, elem in context:
if elem.tag == 'row':
index += 1
filename = format(str(index) + ".xml")
with open(filename, 'wb') as f:
f.write("\n")
f.write(ET.tostring(elem))