Lorsque vous travaillez avec des fichiers XML en Python à l'aide du module ElementTree, il peut être nécessaire de localiser éléments quels que soient leurs espaces de noms. Cependant, lorsqu'il s'agit de fichiers XML contenant des espaces de noms, le comportement par défaut consiste à prendre en compte le préfixe de l'espace de noms lors de la recherche d'éléments. Cela peut être gênant, en particulier lorsque vous travaillez avec de nombreux espaces de noms.
Pour résoudre ce problème, vous pouvez modifier le document XML pour éliminer les espaces de noms, mais cela n'est pas toujours réalisable. Alternativement, on peut analyser le document XML et modifier les balises dans le résultat pour ignorer les espaces de noms :
<code class="python">from io import StringIO # Python 2: from StringIO import StringIO import xml.etree.ElementTree as ET # Use iterparse to retain lazy parsing it = ET.iterparse(StringIO(xml)) for _, el in it: _, _, el.tag = el.tag.rpartition('}') # Strip namespace root = it.root</code>
Cette approche permet une gestion facile de plusieurs espaces de noms sans les ajouter explicitement devant chaque balise.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!