import java.io.*; import java.util.*; import de.kxml.Xml; import de.kxml.parser.*; /* * @author Aleksander Slominski [aslom@extreme.indiana.edu] */ public class KXML implements Tester { int count; String elementName; public KXML() { } public void setUp(Properties props) throws Exception { } public TestResult testCount(String data, int runs, String elementName) throws Exception { this.elementName = elementName; StringReader reader = new StringReader(data); DefaultParser parser = new DefaultParser(reader); DefaultParser[] parsers = new DefaultParser[runs]; for(int i = 0; i < runs ; ++i) { //reader = new StringReader(data); //parsers[i] = new DefaultParser(reader); } double start = TestTimer.tick(); for(int i = 0; i < runs ; ++i) { count = 0; //parser = parsers[i]; parser = new DefaultParser(new StringReader(data)); ParseEvent event; while(true) { event = parser.read(); int type = event.getType(); if(type == Xml.END_DOCUMENT) break; if(type == Xml.START_TAG) { //StartTag st = (StartTag) event; if(elementName.equals(event.getName())) { ++count; } } } } double end = TestTimer.tick(); TestResult result = new TestResult(); result.elementCount = count; result.timeSecs = (end - start) / runs; return result; } }