package com.banking.xc.utils.xml.vacation; 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.GuestRoom; import com.banking.xc.entity.Hotel; import com.banking.xc.utils.xml.frame.XmlParseHandler; import com.banking.xc.utils.xml.frame.XmlParseListener; public class HotelVacationXmlParseHandler extends XmlParseHandler{ ArrayList<Hotel> hotelList; Hotel hotel; ArrayList<GuestRoom> guestRoomList; GuestRoom guestRoom; String preTag; public HotelVacationXmlParseHandler(XmlParseListener xmlParseListener, InputStream inputStream) { super(xmlParseListener, inputStream); } @Override public void cancelParse() { } @Override public void destroy() { hotelList = null; } @Override public Object getObjectWhenEnd() { return hotelList; } @Override public void characters(char[] ch, int start, int length) throws SAXException { super.characters(ch, start, length); String data = new String(ch,start,length); if(TextUtils.equals(preTag, "HotelImgURL")){ hotel.setImageUrl(data); } if(TextUtils.equals(preTag, "HotelID")){ hotel.setHotelCode(data); } if(TextUtils.equals(preTag, "HotelName")){ hotel.setHotelName(data); } if(TextUtils.equals(preTag, "HotelDesc")){ //hotel.set(data); } if(TextUtils.equals(preTag, "Star")){ hotel.setHotelStar(data); } //HotelDesc没解析,roomlist解析如下 if(TextUtils.equals(preTag, "RoomID")){ guestRoom.setRoomId(data); return; } if(TextUtils.equals(preTag, "RoomName")){ guestRoom.setRoomTypeName(data); return; } if(TextUtils.equals(preTag, "PersonNum")){ guestRoom.setPersonNum(data); return; } if(TextUtils.equals(preTag, "Price")){ guestRoom.setPrice(data); return; } } @Override public void endElement(String uri, String localName, String qName) throws SAXException { super.endElement(uri, localName, qName); if(TextUtils.equals(localName, "VacationHotelList")){ return; } if(TextUtils.equals(localName, "VacationHotel")){ hotelList.add(hotel); hotel = null; return; } if(TextUtils.equals(localName, "RoomList")){ hotel.setGuestRooms(guestRoomList); guestRoomList = null; return; } if(TextUtils.equals(localName, "RoomInfo")){ guestRoomList.add(guestRoom); guestRoom = null; return; } } @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(localName, "VacationHotelList")){ hotelList = new ArrayList<Hotel>(); return; } if(TextUtils.equals(localName, "VacationHotel")){ hotel = new Hotel(); return; } if(TextUtils.equals(localName, "RoomList")){ guestRoomList = new ArrayList<GuestRoom>(); return; } if(TextUtils.equals(localName, "RoomInfo")){ guestRoom = new GuestRoom(); return; } } }