• 自己实现的sax XML解析,可能会有误


    package com.agatha.bean;

    public class OrderInfoBean {
    private String order_id;
    private String room_type;
    private String table_no;
    private String status;

    public void setOrder_id(String order_id) {
    this.order_id = order_id;
    }

    public String getOrder_id() {
    return order_id;
    }

    public void setRoom_type(String room_type) {
    this.room_type = room_type;
    }

    public String getRoom_type() {
    return room_type;
    }

    public void setTable_no(String table_no) {
    this.table_no = table_no;
    }

    public String getTable_no() {
    return table_no;
    }

    public void setStatus(String status) {
    this.status = status;
    }

    public String getStatus() {
    return status;
    }

    }

    //////////////////////////////////////////////////////////

    package com.agatha.data_parse;

    import java.io.ByteArrayInputStream;
    import java.util.ArrayList;
    import java.util.List;

    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;

    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;

    import com.agatha.bean.OrderInfoBean;
    import com.agatha.net.NetUtil;
    import com.agatha.net.Url;

    import android.util.Log;

    public class XMLParser extends DefaultHandler {
    private List<OrderInfoBean> beans = null;
    private OrderInfoBean bean;
    private String tagName = null;

    public List<OrderInfoBean> getOrderInfo() {
    return beans;
    }

    @Override
    public void startDocument() throws SAXException {
    beans = new ArrayList<OrderInfoBean>();
    }

    @Override
    public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {

    if (localName.equals("person")) {
    bean = new OrderInfoBean();
    bean.setOrder_id(atts.getValue("order_id"));
    }

    this.tagName = localName;
    }

    @Override
    public void characters(char[] ch, int start, int length) throws SAXException {

    if (tagName != null) {
    String data = new String(ch, start, length);
    if (tagName.equals("room_type")) {
    this.bean.setRoom_type(data);
    } else if (tagName.equals("table_no")) {
    this.bean.setTable_no(data);
    } else if (tagName.equals("status")) {
    this.bean.setStatus(data);
    }
    }
    }

    @Override
    public void endElement(String uri, String localName, String name) throws SAXException {

    if (localName.equals("orders")) {
    beans.add(bean);
    bean = null;
    }

    this.tagName = null;
    }
    //////
    String apiKey = "apiKey=" + myapp.client_no + "&branchId=" + myapp.branch_no + "&orderType="
    + tableTypeId + "&orderStatus=2";
    String url = Url.GETORDERINFO + apiKey;
    String order_data = NetUtil.doGet(getActivity(), url);
    if (!order_data.equals("")) {
    try {
    // 创建解析器
    SAXParserFactory spf = SAXParserFactory.newInstance();
    SAXParser saxParser = spf.newSAXParser();
    saxParser.setProperty("http://xml.org/sax/features/namespaces", true);
    XMLParser handler = new XMLParser();
    ByteArrayInputStream inStream = new ByteArrayInputStream(order_data.getBytes());
    saxParser.parse(inStream, handler);
    List<OrderInfoBean> lbe = handler.getOrderInfo();
    Log.i(TAG, "============================================serverOrder_ id:"
    + lbe.get(0).getOrder_id());
    inStream.close();
    } catch (Exception e) {
    e.printStackTrace();
    }

    }
    }

  • 相关阅读:
    https://scrapingclub.com/exercise/detail_sign/
    https://scrapingclub.com/exercise/basic_captcha/
    https://scrapingclub.com/exercise/basic_login/
    344. 反转字符串(简单)
    142. 环形链表 II(中等)
    面试题02.07.链表相交
    19. 删除链表的倒数第 N 个结点
    24.两两交换链表中的节点
    206.反转链表(简单)
    707.设计链表
  • 原文地址:https://www.cnblogs.com/pengmn/p/5252837.html
Copyright © 2020-2023  润新知