2010-09-17 21 views
5

Bir xml dosyası var, book.xml (http://msdn.microsoft.com/en-us/library/ms762271(VS.85).aspx)Python lxml ve Stdin

Ben kedi books.xml ister ve kitap kimliği için tüm kitap kimlikleri ve türlerini tanınacak.

cat books.xml | python reader.py 

Herhangi bir ipucu veya yardım benzer

mutluluk duyacağız. Teşekkürler.

+0

lxml belgelerinin bir karışıklık olması nedeniyle tekrar. –

+0

python reader.py books.xml - Daha az yazım ve daha verimli. Sys.argv kullanın. –

+0

Bu, stdout'a bir xml dosyası gönderen bir programa bağlamak istediğinizde mükemmeldir. –

cevap

11

Stdin'den bir XML dosyasını okumak için, sadece etree.parse'u kullanın. Bu işlev, sys.stdin olabilen bir dosya nesnesini kabul eder.

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. Kompakt ve okunması kolay. –

İlgili konular