#!/usr/bin/env python import xml from xml.sax import ContentHandler from xml.sax import make_parser import string import os, sys class ResultParser(ContentHandler): __TEST_RESULTS = "testResults" __SAMPLE_RESULT = "sampleResult" __TIMESTAMP = "timeStamp" __TIME = "time" __REQUEST_TYPE = "HTTP Request" __RESPONSE_CODE = "responseCode" __RESPONSE_MESSAGE = "responseMessage" __THREAD_NAME = "threadName" __DATA_TYPE = "dataType" __SUCCESS = "success" def __init__(self): self.started = 0 self.DELIM = "," def startElement(self, name, attrs): if name == self.__TEST_RESULTS: self.started = 1 if name == self.__SAMPLE_RESULT: print "%s,%s,%s,%s,%s,%s,%s,%s" % \ ( attrs.get(self.__TIMESTAMP,None), \ attrs.get(self.__TIME,None), \ self.__REQUEST_TYPE, \ attrs.get(self.__RESPONSE_CODE,None), \ attrs.get(self.__RESPONSE_MESSAGE,None), \ attrs.get(self.__THREAD_NAME,None), \ attrs.get(self.__DATA_TYPE,None), \ attrs.get(self.__SUCCESS,None) ) def endElement(self, name): pass def characters(self, ch): pass if __name__ == "__main__": if ( len(sys.argv) != 2 ): print "Usage: %s file_to_parse" % (sys.argv[0]) sys.exit() parser = xml.sax.make_parser() handler = ResultParser() parser.setContentHandler(handler) parser.parse(sys.argv[1]) # parser.close()