package com.vn.newsspeak; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; /** * Represent the result object * @author vamsi * */ class Result { String status; String usage; String url; String text; } /** * SAX Parser implementation for the XML returned from the Alchemy API * @author vamsi * */ public class ExtractTextXMLHandler extends DefaultHandler { private StringBuilder builder; private Result result; ExtractTextXMLHandler(Result inResult) { result = inResult; builder = new StringBuilder(); builder.setLength(0); } /** * End element override */ @Override public void endElement(String uri, String localName, String name) throws SAXException { super.endElement(uri, localName, name); if (result != null) { if (name.equalsIgnoreCase("status")) { result.status = builder.toString(); } else if (name.equalsIgnoreCase("url")) { result.url = builder.toString(); } else if (name.equalsIgnoreCase("text")) { result.text = builder.toString(); } else if (name.equalsIgnoreCase("usage")) { result.usage = builder.toString(); } } builder.setLength(0); } /** * Collecting all characters. Use string builder for efficiency */ @Override public void characters(char[] ch, int start, int length) throws SAXException { super.characters(ch, start, length); builder.append(ch, start, length); } }