package nliveroid.nlr.main.parser; import java.util.ArrayList; import nliveroid.nlr.main.ErrorCode; import nliveroid.nlr.main.SearchTab.RankingClosedTask; import org.xml.sax.Attributes; import org.xml.sax.ContentHandler; import org.xml.sax.Locator; import org.xml.sax.SAXException; import android.util.Log; public class RankingClosedParser implements ContentHandler { private String startTag; private Attributes nowAttr; private StringBuilder innerText = new StringBuilder(1024); private ArrayList<String> result = new ArrayList<String>(); private boolean parseTarget = false; private RankingClosedTask task; public RankingClosedParser(RankingClosedTask task,ErrorCode error){ this.task = task; } private String getInnerText(char[] arg0,int arg2){ innerText = innerText.delete(0,arg0.length); innerText.append(arg0, 0, arg2); return innerText.toString(); } @Override public void characters(char[] arg0, int arg1, int arg2) throws SAXException { } @Override public void startElement(String arg0, String arg1, String arg2, Attributes arg3) throws SAXException { startTag=arg1; nowAttr = arg3; if(arg1.equals("div") && arg3 != null && arg3.getValue("class") != null){ if( arg3.getValue("class").equals("search_option")){ parseTarget = true; } } if(parseTarget && arg1.equals("option") && arg3 != null && arg3.getValue("value") != null){ result.add(arg3.getValue("value")); } } @Override public void endDocument() throws SAXException {} @Override public void endElement(String arg0, String arg1, String arg2)throws SAXException { if(parseTarget && arg1.equals("select")){ parseTarget = false; task.finishCallBack(result); } //footerも呼ばれないのでしかたなくbody // if(arg1.equals("body")){ // task.finishCallBack(result); // } } @Override public void endPrefixMapping(String arg0) throws SAXException {} @Override public void ignorableWhitespace(char[] arg0, int arg1, int arg2) throws SAXException { // TODO } @Override public void processingInstruction(String arg0, String arg1) throws SAXException { // TODO } @Override public void setDocumentLocator(Locator arg0) { // TODO } @Override public void skippedEntity(String arg0) throws SAXException { // TODO } @Override public void startDocument() throws SAXException { // TODO } @Override public void startPrefixMapping(String arg0, String arg1) throws SAXException { // TODO } }