Python lxml и stdin - PullRequest
       2

Python lxml и stdin

5 голосов
/ 17 сентября 2010

У меня есть xml-файл book.xml (http://msdn.microsoft.com/en-us/library/ms762271(VS.85).aspx)

. Я бы хотел просмотреть cat books.xml и получить все идентификаторы книг и жанры для идентификатора книги.

Аналогично

cat books.xml | python reader.py

Буду признателен за любые советы или помощь. Спасибо.

1 Ответ

11 голосов
/ 17 сентября 2010

Чтобы прочитать XML-файл из стандартного ввода, просто используйте etree.parse. Эта функция принимает объект файла, который может быть 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')] )
...