[英]Best way to parse xml in Appengine with Python
我正在連接到isbndb.com獲取圖書信息,他們的回復如下:
<?xml version="1.0" encoding="UTF-8"?>
<ISBNdb server_time="2005-02-25T23:03:41">
<BookList total_results="1" page_size="10" page_number="1" shown_results="1">
<BookData book_id="somebook" isbn="0123456789">
<Title>Interesting Book</Title>
<TitleLong>Interesting Book: Read it or else..</TitleLong>
<AuthorsText>John Doe</AuthorsText>
<PublisherText>Acme Publishing</PublisherText>
</BookData>
</BookList>
</ISBNdb>
使用appengine(Python)將這些數據轉換為對象的最佳方法是什么?
我需要isbn數字(BookData中的標簽),但我還需要BookData所有子節點的內容 (而不是標簽)。
使用etree :)
>>> xml = """<?xml version="1.0" encoding="UTF-8"?>
... <ISBNdb server_time="2005-02-25T23:03:41">
... <BookList total_results="1" page_size="10" page_number="1" shown_results="1">
... <BookData book_id="somebook" isbn="0123456789">
... <Title>Interesting Book</Title>
... <TitleLong>Interesting Book: Read it or else..</TitleLong>
... <AuthorsText>John Doe</AuthorsText>
... <PublisherText>Acme Publishing</PublisherText>
... </BookData>
... </BookList>
... </ISBNdb>"""
from xml.etree import ElementTree as etree
tree = etree.fromstring(xml)
>>> for book in tree.iterfind('BookList/BookData'):
... print 'isbn:', book.attrib['isbn']
... for child in book.getchildren():
... print '%s :' % child.tag, child.text
...
isbn: 0123456789
Title : Interesting Book
TitleLong : Interesting Book: Read it or else..
AuthorsText : John Doe
PublisherText : Acme Publishing
>>>
voila;)
有一個很棒的Python模塊叫做BeautifulSoup。 使用BeautifulStoneSoup類進行XML解析。
更多信息: http : //www.crummy.com/software/BeautifulSoup/documentation.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.