2010-09-17 15 views
5

que tienen un archivo XML, book.xml (http://msdn.microsoft.com/en-us/library/ms762271(VS.85).aspx)Python lxml y la entrada estándar

me gustaría books.xml gato y obtener todos los identificadores de libros y géneros para la Identificación del libro.

similares a

cat books.xml | python reader.py 

Cualquier consejo o ayuda sería apreciada. Gracias.

+0

Voto a favor porque la documentación de lxml es un desastre. –

+0

python reader.py books.xml - Menos tipeo y más eficiente. Use sys.argv. –

+0

Eso funciona muy bien hasta que quiera conectarlo a un programa que emite un archivo xml a stdout. –

Respuesta

11

Para leer un archivo XML desde stdin, simplemente use etree.parse. Esta función acepta un objeto de archivo, que puede ser sys.stdin.

import sys 
from lxml import etree 

tree = etree.parse(sys.stdin) 

print ([(b.get('id'), b.findtext('genre')) for b in tree.iterfind('book')]) 
+0

+1. Compacto y fácil de leer. –

Cuestiones relacionadas