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();
}

}
}

自己实现的sax XML解析,可能会有误的更多相关文章

  1. XML解析之DOM详解及与SAX解析方法的比较

    XML解析(DOM) XML文件解析方法介绍 我们所用到的NSXMLParser是采用SAX方法解析 SAX(Simple API for XML) 只能读,不能修改,只能顺序访问,适合解析大型XML ...

  2. XML解析【介绍、DOM、SAX详细说明、jaxp、dom4j、XPATH】

    什么是XML解析 前面XML章节已经说了,XML被设计为"什么都不做",XML只用于组织.存储数据,除此之外的数据生成.读取.传送等等的操作都与XML本身无关! XML解析就是读取 ...

  3. XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax

    本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...

  4. XML 解析---dom解析和sax解析

    眼下XML解析的方法主要用两种: 1.dom解析:(Document Object Model.即文档对象模型)是W3C组织推荐的解析XML的一种方式. 使用dom解析XML文档,该解析器会先把XML ...

  5. XML解析之SAX详解

    XML解析之SAX详解 本文属于作者原创 http://www.cnblogs.com/ldnh/ XML解析的五个步骤 1.打开文档 (void)parserDidStartDocument:(NS ...

  6. 非常简单的XML解析(SAX解析、pull解析)

    这里只是把解析的数据当日志打出来了 非常简单的xml解析方式 package com.example.demo.service; import java.io.IOException; import ...

  7. 【Java】XML解析之SAX

    SAX介绍 SAX(Simple API for XML)是一种事件驱动的流式XML文件处理方式,区别与DOM方式的是不需要在内存中建一棵DOM树,而是根据读取XML时遇到的标签事件来顺序处理,因此具 ...

  8. Android网络之数据解析----SAX方式解析XML数据

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  9. iOS 中的XML解析代码(SAX)

    1.XML解析(SAX) NSXMLParser SAX 大文件 1)打开文档 - (void)parserDidStartDocument:(NSXMLParser *)parser 2)开始查找起 ...

随机推荐

  1. http请求连接

    1.在Info.plist中添加NSAppTransportSecurity类型Dictionary.2.在NSAppTransportSecurity下添加NSAllowsArbitraryLoad ...

  2. Android实现GIF图片解码与播放

    Android实现GIF图片解码与播放 如何在Android中播放GIF图片呢?如果直接按以前的方法,分解图片,可能相对比较麻烦. 今天给大伙介绍一种新的方式,构造自己的Android图片解码帮助类, ...

  3. 指针--摘自C++技术网 作者dx

    “指针是什么?”“指针就是一种数据类型.”“你确定?”“那数据类型是什么?额,这个???类型就是类型,还能怎么解释嘛.”“指针有多少种?”“指针有好多种,比如整型指针,字符指针等等.”“指针是怎么确定 ...

  4. Qt5:图片彩色键控,设置图片中指定颜色的像素为透明

    有图片 1.png 设置该图中的颜色为粉红色的像素为透明 QPixmap pix("1.png"); QBitmap mask= pix.createMaskFromColor(Q ...

  5. L10,not for jazz

    expressions: It is called a clavichord这被称为古钢琴 a friend of my father's我父亲的朋友   words: musical,adj,音乐的 ...

  6. XML回顾

    xml加强 一.sax解析    1)原理: 读取xml的某个部分,解析一部分(读取一点,解析一点)    2)步骤:         SAXParserFactory factory = SAXPa ...

  7. SGU_390_Tickets(另类数位DP)

    Tickets Time Limit : 1000/500ms (Java/Other)   Memory Limit : 524288/262144K (Java/Other) Total Subm ...

  8. 性能更好的js动画实现方式---requestAnimationFrame

    用js来实现动画,我们一般是借助setTimeout或setInterval这两个函数,css3动画出来后,我们又可以使用css3来实现动画了,而且性能和流畅度也得到了很大的提升.但是css3动画还是 ...

  9. netty最快?

    http://www.techempower.com/blog/2013/04/05/frameworks-round-2/

  10. emulator shortcut

    Alt+Enter Maximizes the emulator. Ctrl+F11 Changes the orientation of the emulator from landscape to ...