package com.banking.xc.utils.xml.flight; import java.io.InputStream; import java.util.ArrayList; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import android.text.TextUtils; import com.banking.xc.entity.AirportInfoEntity; import com.banking.xc.entity.AirportInfosResponse; import com.banking.xc.utils.Log; import com.banking.xc.utils.xml.frame.XmlParseHandler; import com.banking.xc.utils.xml.frame.XmlParseListener; public class FlightAriportInfoResponseXmlParseHandler extends XmlParseHandler{ private ArrayList<AirportInfoEntity> AirportInfoEntityList; private AirportInfoEntity airportInfoEntity; private String preTag; public FlightAriportInfoResponseXmlParseHandler(XmlParseListener xmlParseListener, InputStream inputStream) { super(xmlParseListener, inputStream); } @Override public void cancelParse() { } @Override public void destroy() { AirportInfoEntityList= null; } @Override public Object getObjectWhenEnd() { return AirportInfoEntityList; } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { super.startElement(uri, localName, qName, attributes); preTag = localName; if(TextUtils.equals("AirportInfosList", localName)){ AirportInfoEntityList = new ArrayList<AirportInfoEntity>(); } if(TextUtils.equals("AirportInfoEntity", localName)){ airportInfoEntity = new AirportInfoEntity(); } } @Override public void endElement(String uri, String localName, String qName) throws SAXException { super.endElement(uri, localName, qName); if(TextUtils.equals("AirportInfoEntity", localName)){ AirportInfoEntityList.add(airportInfoEntity); airportInfoEntity = null; } } @Override public void characters(char[] ch, int start, int length) throws SAXException { super.characters(ch, start, length); final String data = new String(ch, start, length); /*if(TextUtils.isEmpty(data)||TextUtils.equals(data, "\n")){ return; }*/ if(TextUtils.equals(preTag, "AirPort")){ //机场三字码 if(airportInfoEntity.getAirport()==null){ airportInfoEntity.setAirport(data); } return; } if(TextUtils.equals(preTag, "AirPortName")){//机场中文名字 if(airportInfoEntity.getAirportName()==null){ airportInfoEntity.setAirportName(data); } if(Log.D){ Log.d("","AirPortName"+data); } return; } if(TextUtils.equals(preTag, "ShortName")){ airportInfoEntity.setShortName(data); return; } if(TextUtils.equals(preTag, "CityId")){ airportInfoEntity.setCityId(data); return; } //怎么会有空指针呢?空格问题 if(TextUtils.equals(preTag, "CityName")){ if(Log.D){ Log.d("","CityName"+data); } if(airportInfoEntity!=null&&(airportInfoEntity.getCityName()==null)){ airportInfoEntity.setCityName(data); } return; } } }