¿Obtener todos los nodos de un nombre particular en lxml?

Estoy encontrando la curva de aprendizaje inicial un poco empinada con lxml, solo tareas comunes como capturar nodos por nombre, atributo y obtener su contenido. Aquí hay una pregunta muy simple.

Tengo un archivo XML. Me gustaría encontrar todos los nodos XML llamados <Review>. ¿Cómo puedo hacer esto de manera más eficiente con lxml?

f = open('./test.xml')
xml = f.read()
tree = etree.parse(StringIO(xml))
context = etree.iterparse(StringIO(xml))
# How to get all the tags with the name <Review>
reviews = tree.findall('Review') # Something like this?

No sé si debería usar objectify, xpath...

Los comentarios también son bienvenidos sobre la forma en que leo el archivo y lo convierto en un objeto lxml analizable. Gracias.

preguntado el 22 de mayo de 12 a las 12:05

1 Respuestas

Consulte las documentación:

tree = etree.parse(open('./test.xml'))
reviews = tree.findall(".//Review")

contestado el 22 de mayo de 12 a las 21:05

Gracias. Estaba un poco perdido en medio de todas las diferentes opciones de lxml. - hilo dental

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.