J'ai un fichier xml comme indiqué.itération à travers un nombre fixe d'éléments, à la fois dans un fichier xml. python Arborescence des éléments
<?xml version="1.0" encoding="UTF-8"?>
<DataRoot>
<Data>
<Data>
<Data>
<child>
....text....
</child>
</Data>
<Data>
<Data>
<Data>
<Data>
.
.
.
</DataRoot>
Mon exigence est de diviser ce xml pour les petits fichiers XML avec un nombre fixe d'éléments <Data>
dans chaque fichier. Je suis capable de diviser à chaque <Data>
à un xml, mais incapable de prendre un nombre fixe <Data>
élément et former le fichier.
ma sortie est: fichier1:
<DataRoot>
<Data>
</DataRoot>
fichier2:
<DataRoot>
<Data>
</DataRoot>
Mais la sortie est nécessaire:
fichier1:
<DataRoot>
<Data>
<Data>
<Data>
</DataRoot>
fichier2:
<DataRoot>
<Data>
<Data>
<Data>
</DataRoot>
Ici va mon code.
import os
import xml.etree.ElementTree as ET
import lxml.etree as LT
file_path = 'filepath\\file.xml'
file_name = (os.path.splitext((os.path.basename("%s"%file_path)))[0])
print file_name
tree = ET.ElementTree(file='%s'%file_path)
tre = LT.ElementTree(file='%s'%file_path)
root = tree.getroot().tag
i = 0
for elm in (tree.findall('Data')):
text = ET.tostring(elm)
i += 1
filename = "%d"%i+"_of_%s"%file_name+".xml"
with open(filepath\\%s'%filename, 'wb') as f:
f.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
f.write(("<"+ "%s"%root+">"))
f.write(text)
f.write(("</"+ "%s"%root+">"))
f.close()
Nombre de fichiers à former est pas deux, cela dépend de la taille du document XML source, en explication que j'ai donné un nombre aléatoire 2. Merci à l'avance