Rectification d'erreur de balise xml dans python
Résolu
rasielblas
Messages postés
143
Statut
Membre
-
rasielblas Messages postés 143 Statut Membre -
rasielblas Messages postés 143 Statut Membre -
Bonjour,
j'ai une balise xml qui contient une erreur est qu'on m'a demandé de rectifié avec python mais je ne sais pas comment procédé après avoir documenté dans plusieurs forum ce qui m'a permis de postulé ce sujet.
En fait j'ai un fichier xml:
Ce fichier xml contient parfois une caractère spéciaux avant la balise
exemple :
Et j'aimerais rectifié automatiquement avec python pour détecter automatiquement ce caractère spéciaux et le modifié pour que la caractère spéciaux devant la balise sera supprimé automatiquement:
Donc pour la résultat:
&<information> devient <information>
Tous ce que j'ai réussi pour l'instant c'est d'afficher tous les balises avec ce code:
Mais je ne sais pas comment faire pour la suite, pouvez vous m'aider s'il vous plait?
Cordialement,
j'ai une balise xml qui contient une erreur est qu'on m'a demandé de rectifié avec python mais je ne sais pas comment procédé après avoir documenté dans plusieurs forum ce qui m'a permis de postulé ce sujet.
En fait j'ai un fichier xml:
<?xml version='1.0' encoding='iso-8859-1'?> <Information> <personnel> <contact>03210000000</contact> </personnel> <Information>
Ce fichier xml contient parfois une caractère spéciaux avant la balise
exemple :
&<information> %<personnel> @<contact>03210000000</contact> </personnel> </information>
Et j'aimerais rectifié automatiquement avec python pour détecter automatiquement ce caractère spéciaux et le modifié pour que la caractère spéciaux devant la balise sera supprimé automatiquement:
Donc pour la résultat:
&<information> devient <information>
Tous ce que j'ai réussi pour l'instant c'est d'afficher tous les balises avec ce code:
import xml.etree.ElementTree as ET import os from xml.dom import minidom doc = minidom.parse("Monfichier.xml") print(doc.toxml())
Mais je ne sais pas comment faire pour la suite, pouvez vous m'aider s'il vous plait?
Cordialement,
Configuration: Windows / Firefox 70.0
A voir également:
- Rectification d'erreur de balise xml dans python
- Xml download - Télécharger - Édition & Programmation
- Citizen code python - Accueil - Outils
- Office xml handler - Télécharger - Traitement de texte
- Driveimage xml - Télécharger - Sauvegarde
- Erreur 0x80070643 - Accueil - Windows
1 réponse
Bonjour.
Il faudrait plutôt faire ça avec re.
A faire donc sur le contenu du fichier ouvert avec open.
Il faudrait plutôt faire ça avec re.
>>> import re >>> s = '''&<information> ... %<personnel> ... @<contact>03210000000</contact> ... </personnel> ... </information>''' >>> re.sub('\S(?=<)', '', s) '<information>\n <personnel>\n <contact>0321000000</contact>\n </personnel>\n</information>'
A faire donc sur le contenu du fichier ouvert avec open.
J'ai éssayé de faire comme ceci:
et cela me génère une erreur de type:
Traceback (most recent call last):
File "D:/Montravail/xml 18-11-2019/index.py", line 189, in <module>
ecrireDansFichier("Deces.xml",re.sub('\S(?=<)','',lireFichier("monfichier.xml")))
File "C:\Python37-32\lib\re.py", line 192, in sub
return _compile(pattern, flags).sub(repl, string, count)
TypeError: expected string or bytes-like object
readline ne lit qu'une seule ligne du fichier.
ligne.strip n'a aucune utilité ici.
writelines attend une liste ou tuple, pas un simple texte.
Dans ton cas, tu n'as besoin que de read et write.