J'utilise minidom (parmi d'autres) en Python pour tirer une liste de fichiers à partir d'un répertoire, obtenir leurs temps modifiés, autre misc. données, puis écrire ces données dans un fichier XML. Les données s'impriment très bien, mais lorsque j'essaie d'écrire les données dans un fichier, je n'ai que le XML pour l'un des fichiers du répertoire. Voici mon code (je l'ai enlevé une bonne quantité de createElement
et appendChild
méthodes ainsi que toutes les variables non pertinentes pour des raisons de lisibilité/espace):Ecrire un fichier XML - Tags multiples basés sur des variables
for filename in os.listdir((os.path.join('\\\\10.10.10.80\Jobs\success'))):
doc = Document()
modTime = datetime.datetime.fromtimestamp(os.path.getmtime('\\\\10.10.10.80\Jobs\success\\'+filename)).strftime('%I:%M:%S %p')
done = doc.createElement('Printed Orders')
doc.appendChild(done)
ordernum = doc.createElement(filename)
done.appendChild(ordernum)
#This is where other child elements have been removed
print doc.toprettyxml(indent=' ')
xmlData = open(day_path, 'w')
xmlData.write(doc.toprettyxml(indent=' '))
Espérons que cela suffit de voir ce qui se passe . Depuis print
renvoie les valeurs que je m'attends, je pense que la fonction d'écriture est où je vais mal.
C'est mon intention, un seul fichier contenant toutes les données (Ultimatel Ce sera un fichier créé chaque jour) J'ai essayé ce que vous avez suggéré, mais le fichier de sortie ne contient encore que du XML pour un fichier dans 'os.listdir' En plus,' print' ne renvoie qu'un seul fichier, où comme avant il les a tous retournés. Déplacer 'doc = Document()' en dehors de la boucle renvoie l'erreur: 'HierarchyRequestErr: deux éléments de document interdits' –
La prochaine fois, créez un exemple d'auto-contentement pour pouvoir tester facilement –
Merci @Xavier Combelle après avoir déplacé la création de élément racine tout a parfaitement fonctionné. La prochaine fois, je ferai en sorte de fournir un exemple plus convivial. –