package com.banking.xc.utils.xml.hotel; 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.DomesticHotelOrderDetailForList; import com.banking.xc.utils.xml.frame.XmlParseHandler; /** * 这个返回对象数据处理地十分友善 * @author zhangyinhang * */ public class HotelOrderListXmlParseHandler extends XmlParseHandler{ ArrayList<DomesticHotelOrderDetailForList> domesticHotelOrderDetailForListList; DomesticHotelOrderDetailForList domesticHotelOrderDetailForList; String preTag; public HotelOrderListXmlParseHandler(com.banking.xc.utils.xml.frame.XmlParseListener XmlParseListener, InputStream inputStream) { super(XmlParseListener, inputStream); } @Override public void cancelParse() { } @Override public void destroy() { domesticHotelOrderDetailForListList = null; } @Override public Object getObjectWhenEnd() { return domesticHotelOrderDetailForListList; } @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.equals(preTag,"IsMaskedOrder")){ domesticHotelOrderDetailForList.setIsMaskedOrder(data); } if(TextUtils.equals(preTag,"BreakFastQuantity")){ domesticHotelOrderDetailForList.setBreakFastQuantity(data); } if(TextUtils.equals(preTag,"TwinBed")){ domesticHotelOrderDetailForList.setTwinBed(data); } if(TextUtils.equals(preTag,"KingSize")){ domesticHotelOrderDetailForList.setKingSize(data); } if(TextUtils.equals(preTag,"ClientName")){ domesticHotelOrderDetailForList.setClientName(data); } if(TextUtils.equals(preTag,"LocationName")){ domesticHotelOrderDetailForList.setLocationName(data); } if(TextUtils.equals(preTag,"BalanceType")){ domesticHotelOrderDetailForList.setBalanceType(data); } if(TextUtils.equals(preTag,"BreakfastCount")){ domesticHotelOrderDetailForList.setBreakfastCount(data); } if(TextUtils.equals(preTag,"LastArrivalTime")){ domesticHotelOrderDetailForList.setLastArrivalTime(data); } if(TextUtils.equals(preTag,"EarlyArrivalTime")){ domesticHotelOrderDetailForList.setEarlyArrivalTime(data); } if(TextUtils.equals(preTag,"LastCancelTime")){ domesticHotelOrderDetailForList.setLastCancelTime(data); } if(TextUtils.equals(preTag,"CityName")){ domesticHotelOrderDetailForList.setCityName(data); } if(TextUtils.equals(preTag,"OrderStatus")){ domesticHotelOrderDetailForList.setOrderStatus(data); } if(TextUtils.equals(preTag,"CheckOutDate")){ domesticHotelOrderDetailForList.setCheckOutDate(data); } if(TextUtils.equals(preTag,"CheckInDate")){ domesticHotelOrderDetailForList.setCheckInDate(data); } if(TextUtils.equals(preTag,"Price")){ domesticHotelOrderDetailForList.setPrice(data); } if(TextUtils.equals(preTag,"HotelName")){ domesticHotelOrderDetailForList.setHotelName(data); } if(TextUtils.equals(preTag,"OrderOverTime")){ domesticHotelOrderDetailForList.setOrderOverTime(data); } if(TextUtils.equals(preTag,"OrderDate")){ domesticHotelOrderDetailForList.setOrderDate(data); } if(TextUtils.equals(preTag,"OrderId")){ domesticHotelOrderDetailForList.setOrderId(data); } } @Override public void endElement(String uri, String localName, String qName) throws SAXException { super.endElement(uri, localName, qName); if(TextUtils.equals(localName, "DomesticHotelOrderDetailForList")){ domesticHotelOrderDetailForListList.add(domesticHotelOrderDetailForList); domesticHotelOrderDetailForList = null; } } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { super.startElement(uri, localName, qName, attributes); if(TextUtils.equals(localName, "OrderDetailList")){ domesticHotelOrderDetailForListList = new ArrayList<DomesticHotelOrderDetailForList>(); } if(TextUtils.equals(localName, "DomesticHotelOrderDetailForList")){ domesticHotelOrderDetailForList = new DomesticHotelOrderDetailForList(); } preTag = localName; } /** * 真实返回数据 * <?xml version="1.0"?> * <Response> * <Header ShouldRecordPerformanceTime="False" Timestamp="2013-03-17 14:24:36:45550" ReferenceID="2bd12c6c-ecb1-4f49-aa03-4b55777ce9d9" ResultCode="Success" /> * <DomesticHotelOrderListForList> * <OrderDetailList> * <DomesticHotelOrderDetailForList> * <IsMaskedOrder>F</IsMaskedOrder> * <BreakFastQuantity>2</BreakFastQuantity> * <TwinBed>T</TwinBed> * <KingSize>F</KingSize> * <RoomNameEN>Standard Room</RoomNameEN> * <HotelNameEN>Yinfa Hotel</HotelNameEN> * <CityNameEN>Shanghai</CityNameEN> * <ClientName>张四</ClientName> * <LocationName>静安区</LocationName> * <BalanceType>2</BalanceType> * <Exchange>1.00000</Exchange> * <Currency>RMB</Currency> * <BreakfastCount>2</BreakfastCount> * <Breakfast>有</Breakfast> * <LastArrivalTime>2013-03-14T06:00:00</LastArrivalTime> * <EarlyArrivalTime>2013-03-14T04:00:00</EarlyArrivalTime> * <LastCancelTime>2013-03-15T00:00:00</LastCancelTime> * <CityName>上海</CityName><CityID>2</CityID> * <OrderStatus>已确认</OrderStatus> * <CheckOutDate>2013-03-15T00:00:00</CheckOutDate> * <CheckInDate>2013-03-14T06:00:00</CheckInDate> * <Cost>435.0000</Cost> * <PriceShowInfo>RMB 495.00</PriceShowInfo> * <Price>495.0000</Price> * <HotelName>上海银发大酒店</HotelName> * <HotelID>18392</HotelID> * <OrderOverTime>0001-01-01T00:00:00</OrderOverTime> * <OrderDate>2013-03-12T18:06:03.05</OrderDate> * <OrderId>154926579</OrderId> * </DomesticHotelOrderDetailForList> * </OrderDetailList>< * /DomesticHotelOrderListForList></Response> */ }