Bonjour,
J'ai un fichier XML, encodé en windows-1256, parce qu'il contient des données en arabe.
J'essaye de lire le contenu du fichier, d'en modifier quelques données, et d'écrire le résultat.
Le script python que j'utilise ressemble à cela :
Le fichier XML utilisé est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 # -*- coding:Latin-1 -*- import re from xml.dom import minidom xmldoc = minidom.parse("d:\\exemple.xml") xmlTrames = xmldoc.getElementsByTagName("p") # Récupération des données en provenance du XML data = xmlTrames[0].firstChild.data # On réinjecte dans le stream XML new_data = data xmlTrames[0].firstChild.data = new_data fic_xml = open("d:\\exemple.xml", "w") fic_xml.write(xmldoc.toxml()) fic_xml.close()
A celà, deux problèmes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?xml version="1.0" encoding="windows-1256" ?> - <Items> - <Item> <p>لا شيء</p> </Item> </Items>
1 - J'ai une erreur lors de l'écriture du fichier du type : "UnicodeEncodeError : 'ascii' codec can't encode characters in position 52-53 : ordinal not in range (128)
2 - Y a-t-il une meilleure manière de procéder pour répercuter les modifications qu'un fichier XML aura subi après traitement des données ?
Merci pour toute votre attention.
Partager