1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
from xml.sax import make_parser
from xml.sax.handler import ContentHandler
class BasketBallHandler(ContentHandler):
def __init__ (self, searchTerm):
self.searchTerm= searchTerm;
self.isPointsElement, self.isReboundsElement = 0, 0;
def startElement(self, name, attrs):
if name == 'player':
self.playerName = attrs.get('name',"")
self.playerAge = attrs.get('age',"")
self.playerHeight = attrs.get('height',"")
elif name == 'points':
self.isPointsElement= 1;
self.playerPoints = "";
elif name == 'rebounds':
self.isReboundsElement = 1;
self.playerRebounds = "";
return
def characters (self, ch):
if self.isPointsElement== 1:
self.playerPoints += ch
if self.isReboundsElement == 1:
self.playerRebounds += ch
def endElement(self, name):
if name == 'points':
self.isPointsElement= 0
if name == 'rebounds':
self.inPlayersContent = 0
if name == 'player' and self.searchTerm== self.playerName :
print 'Statistics for player:' , self.playerName, '(age:', self.playerAge , 'height' , self.playerHeight , ")"
print 'Match average:', self.playerPoints , 'points,' , self.playerRebounds, 'rebounds'
def main():
searchTerm= 'player'
parser = make_parser()
curHandler = BasketBallHandler(searchTerm)
parser.setContentHandler(curHandler)
parser.parse(open('playerStats.xml'))
if __name__ == "__main__":
main() |
Partager