Ignorer l'espace de noms XML dans ElementTree
Les méthodes findall et find d'ElementTree nécessitent une approche prenant en compte les espaces de noms lors de la localisation d'éléments à partir d'un fichier XML contenant des espaces de noms. Cependant, cela peut être fastidieux si de nombreuses balises nécessitent des espaces de noms.
Ignorer l'espace de noms avec Iterparse
Pour ignorer les espaces de noms, nous pouvons utiliser la méthode iterparse d'ElementTree. Voici comment :
<code class="python">from io import StringIO # Python 2: import from StringIO instead import xml.etree.ElementTree as ET # Parse the XML file it = ET.iterparse(StringIO(xml)) # Strip namespace from tags for _, el in it: _, _, el.tag = el.tag.rpartition('}') # strip ns root = it.root</code>
Cette approche modifie les noms de balises en supprimant les espaces de noms, ce qui permet un emplacement plus facile des éléments sans spécifier explicitement les espaces de noms. Comme suggéré dans la discussion ici, cette technique offre une plus grande flexibilité dans la gestion de plusieurs espaces de noms et alias.
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!