Tengo el siguiente XML que quiero analizar usando Python ElementTree
:
<rdf:RDF xml:base="http://dbpedia.org/ontology/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns="http://dbpedia.org/ontology/">
<owl:Class rdf:about="http://dbpedia.org/ontology/BasketballLeague">
<rdfs:label xml:lang="en">basketball league</rdfs:label>
<rdfs:comment xml:lang="en">
a group of sports teams that compete against each other
in Basketball
</rdfs:comment>
</owl:Class>
</rdf:RDF>
Quiero encontrar todas las owl:Class
etiquetas y luego extraer el valor de todas las rdfs:label
instancias dentro de ellas. Estoy usando el siguiente código:
tree = ET.parse("filename")
root = tree.getroot()
root.findall('owl:Class')
Debido al espacio de nombres, recibo el siguiente error.
SyntaxError: prefix 'owl' not found in prefix map
Intenté leer el documento en http://effbot.org/zone/element-namespaces.htm pero todavía no puedo hacer que esto funcione ya que el XML anterior tiene múltiples espacios de nombres anidados.
Por favor, hágame saber cómo cambiar el código para encontrar todas las owl:Class
etiquetas.