J'essaie d'analyser tous les fichiers XML dans un dossier/sous-dossier donné et de rechercher et remplacer du texte dans ce fichier XML. Tout en excluant le sous-dossier "Archive". Je reçois l'erreur "AttributeError: l'objet 'NoneType' n'a pas d'attribut 'replace'" Je ne sais pas ce qui me manque, mais ma boucle semble mourir une fois qu'elle atteint ElementTree pour ouvrir et analyser le XML.Analyser récursivement tous les fichiers xml et exclure le dossier
for roots, dirs, files in os.walk("C:\test", topdown=True):
if 'Archive' in dirs:
dirs.remove('Archive')
#dirs[:] = [d for d in dirs if 'Archive' not in d]
for f in files:
if f.endswith('.xml'):
try:
with open(os.path.join(roots, f), 'r') as xml:
tree = ET.parse(xml)
root = tree.getroot()
for elem in root.getiterator():
try:
print (elem.text)
elem.text = elem.text.replace('_THUMBNAIL.jpg', '.mxd.jpg')
except ET.ParseError:
pass
tree.write(xml, encoding='utf-8')
except FileNotFoundError:
pass
hmm pas de dés. Il semble sauter tout avec ça. – Infinity8
Pouvez-vous montrer une petite partie de votre fichier XML? Cela semble étrange. – VdF