日期:2014-05-16 浏览次数:20514 次
import java.io.ByteArrayInputStream;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public abstract class BaseHandler extends DefaultHandler {
	public abstract boolean parse(byte[] byteAarray);
	public static void parserXml(BaseHandler baseHandler, byte[] byteAarray)
			throws Exception {
		if (byteAarray == null || byteAarray.length == 0)
			return;
		ByteArrayInputStream bis = new ByteArrayInputStream(byteAarray);
		SAXParserFactory factory = SAXParserFactory.newInstance();
		factory.newSAXParser().parse(bis, baseHandler);
		bis.close();
	}
	public abstract void characters(char[] ch, int start, int length)
			throws SAXException;
	public abstract void endDocument() throws SAXException;
	public abstract void endElement(String uri, String localName, String name)
			throws SAXException;
	public abstract void startDocument() throws SAXException;
	public abstract void startElement(String uri, String localName,
			String tagName, Attributes attributes) throws SAXException;
}
import java.util.Stack;
import java.util.Vector;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import com.tlt.app.App;
import com.tlt.model.Supplement;
import com.tlt.model.User;
import com.tlt.util.Consts;
import com.tlt.view.SupplementPage;
import com.tlt.view.item.Dialog;
public class SupplementHandler extends BaseHandler {
	public boolean parse(byte[] byteAarray) {
		// TODO Auto-generated method stub
		try {
			super.parserXml(this, byteAarray);
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
	}
	
	public void characters(char[] ch, int start, int length)
			throws SAXException {
		// TODO Auto-generated method stub
		String chars = new String(ch, start, length).trim();
//		System.out.println("the character is "+chars);
		if(chars.length() > 0) {
			String tagName = (String)tagStack.peek();//查看栈顶对象而不移除它
			Supplement current = (Supplement)supplements.lastElement();
			//<message><head><messageId>20100825110225890</messageId><result>0000</result><encryptionType>0</encryptionType><md>bdc5e43a0368c0ea8400960ed75d088a</md></head><body><orderId>TX201008251102240001</orderId><billNo>20100825110225890</billNo><userId>50</userId><fundsAccount>33900</fundsAccount><time>20100825110224</time><reserve></reserve></body></message>
			if (tagName.equals("messageId")) {
				current.setMessageId(chars);
			}else if(tagName.equals("result")){
				current.setResult(chars);
			}else if(tagName.equals("encryptionType")){
				current.setEncryptionType(chars);
			}else if(tagName.equals("md")){
				current.setMd(chars);
			}
			else if(tagName.equals("errorMsg")) {
				current.setErrorMsg(chars);
			}else if(tagName.equals("orderId")) {
				current.setOrderId(chars);
			}else if(tagName.equals("billNo")) {
				current.setBillNo(chars);
			}else if(tagName.equals("userId")) {
				current.setUserId(chars);
			}else if(tagName.equals("fundsAccount")) {
				current.setFundsAccount(chars);
			}else if(tagName.equals("time")) {
				current.setTime(chars);
			}else if(tagName.equals("reserve")) {
				current.setReserve(chars);
			}
			
		}
	}
	public void endDocument() throws SAXException {
		// TODO Auto-generated method stub
		Consts.hash.put("supplement", supplements.lastElement());
		Supplement supplement=(Supplement)supplements.lastElement();
		if(supplement.getResult().equals(Consts.r