我应该使用PyXML还是标准库中的内容?
ElementTree是标准Python库的一部分.ElementTree是纯python,而cElementTree是更快的C实现:
# Try to use the C implementation first, falling back to python try: from xml.etree import cElementTree as ElementTree except ImportError, e: from xml.etree import ElementTree
这是一个示例用法,我从RESTful Web服务中使用xml:
def find(*args, **kwargs): """Find a book in the collection specified""" search_args = [('access_key', api_key),] if not is_valid_collection(kwargs['collection']): return None kwargs.pop('collection') for key in kwargs: # Only the first keword is honored if kwargs[key]: search_args.append(('index1', key)) search_args.append(('value1', kwargs[key])) break url = urllib.basejoin(api_url, '%s.xml' % 'books') data = urllib.urlencode(search_args) req = urllib2.urlopen(url, data) rdata = [] chunk = 'xx' while chunk: chunk = req.read() if chunk: rdata.append(chunk) tree = ElementTree.fromstring(''.join(rdata)) results = [] for i, elem in enumerate(tree.getiterator('BookData')): results.append( {'isbn': elem.get('isbn'), 'isbn13': elem.get('isbn13'), 'title': elem.find('Title').text, 'author': elem.find('AuthorsText').text, 'publisher': elem.find('PublisherText').text,} ) return results