Skip to content

Instantly share code, notes, and snippets.

@Fhernd
Created July 25, 2018 12:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Fhernd/00ece678110a531ff3d83a6c21891c01 to your computer and use it in GitHub Desktop.
Save Fhernd/00ece678110a531ff3d83a6c21891c01 to your computer and use it in GitHub Desktop.
Recorrido eficiente de un documento XML con Python. OrtizOL.
from xml.etree.ElementTree import iterparse
def recorrer_leer(archivo, ruta):
partes_ruta = ruta.split('/')
documento = iterparse(archivo, ('start', 'end'))
# Omite el elemento raíz:
next(documento)
etiquetas = []
elementos = []
for evento, elemento in documento:
if evento == 'start':
etiquetas.append(elemento.tag)
elementos.append(elemento)
elif evento == 'end':
if etiquetas == partes_ruta:
yield elemento
elementos[-2].remove(elemento)
try:
etiquetas.pop()
elementos.pop()
except IndexError:
pass
for elmt in recorrer_leer('potholes.xml', 'row/row'):
print(elmt[1].text)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment