#!/usr/bin/python
from xml.sax import saxlib, saxexts
import StringIO
class QuotationHandler(saxlib.HandlerBase):
def __init__(self):
self.in_quote = 0
self.content = []
self.thisquote = ''
self.name = None
def startDocument(self):
print '--- Begin Document ---'
def startElement(self, name, attrs):
if name == 'name':
self.content = []
self.name = name
def characters(self, ch, start, length):
if self.name == 'name':
self.content.append(ch[start:start+length])
def endElement(self, name):
if name == 'name':
# Flush content.
print ''.join(self.content)
parser = saxexts.XMLParserFactory.make_parser()
qh = QuotationHandler()
parser.setDocumentHandler(qh)
myFeed = StringIO.StringIO("<xml><name>Marry
Lynn</name><sex>mm</sex><name>Peter
Pan</name></xml>")
parser.parseFile(myFeed)
parser.close()
# vim:ts=8:sw=4:expandtab
内容在 def characters() 里。