Analyse XML avec un espace de noms en Python à l'aide d'ElementTree
Lors de l'analyse de XML avec des espaces de noms en Python à l'aide d'ElementTree, on peut rencontrer une erreur si l'espace de noms le préfixe utilisé dans le XML n'est pas explicitement défini.
Problème :
Un utilisateur a le XML suivant :
<rdf:RDF ...> <owl:Class> <rdfs:label>...</rdfs:label> ... </owl:Class> </rdf:RDF>
Lors de la tentative d'analyse du XML à l'aide d'ElementTree avec l'espace de noms par défaut manipulation, l'erreur suivante est renvoyé :
SyntaxError: prefix 'owl' not found in prefix map
Solution :
Pour résoudre cette erreur, des mappages d'espace de noms explicites doivent être fournis aux méthodes ElementTree responsables de l'analyse du XML. Ceci peut être réalisé en passant un dictionnaire à l'argument espaces de noms de la méthode find().
namespaces = {'owl': 'http://www.w3.org/2002/07/owl#'} root = tree.getroot() root.findall('owl:Class', namespaces)
En spécifiant le dictionnaire des espaces de noms, l'analyseur ElementTree peut faire correspondre le préfixe d'espace de noms (« hibou ») au bon URL de l'espace de noms, lui permettant de récupérer avec succès les nœuds Owl:Class.
Supplémentaire Considérations :
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!