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. selenium和pythond的区别

    selenium和pythond的区别 天宇6169 | 浏览 137 次 2016-03-18 10:25 2016-03-18 12:24 最佳答案   selenium ide是用来录制的!大概 ...

  2. windows程序设计学习笔记(一)

    windows里的变量类型 1.简单重定义windows变量 BOOL (TRUE FALSE) INT UINT(32位,4字节) LONG DWORD(32位,4字节) lParam,wParam ...

  3. “inno setup打包,win7下安装没有桌面快捷方式,xp下安装正常”

    修改桌面的快捷键为选中就行了:Flags: checkablealone;在[Tasks]下面修改代码如下:Name: "desktopicon"; Description: &q ...

  4. ab测试 uwsgi遇到的问题

    1 请求并发数目较大时,接收到的数目小于发送的数目 1.1 描述:uwsgi正常返回302跳转 ab -n 5000 -c 250 -g test.log "192.168.50.20:90 ...

  5. deibian不能加vpn

    http://www.cyberciti.biz/faq/deiban-ubuntu-linux-networkmanager-pptp-cisco-vpn-tab-disabled/ 经常搜goog ...

  6. zf-关于调用页面提示找不到className的原因

    多亏了蒋杰 还好他上次告诉我 关于节点的问题 我一看到这个函数就想到了他以前教我的    我这里一开始就调用js函数了 所以没获取到节点    后来把方法换到这里就OK了    

  7. jquery has deprecated synchronous XMLHTTPRequest

    Like many others, my website is using jquery. When I open the developer tools, I see a warning that ...

  8. copy_part_stat.sql

    spool 04_copy_part_stat.log conn / as sysdba execute sys.dbms_stats.export_schema_stats(ownname=> ...

  9. ztree异步加载

    Ztree异步加载的意思就是: 当点击展开树节点时,才去请求后台action返回点击节点的子节点数据并加载. 直接贴代码(SpringMvc+Mybatis): 前台页面ztreeList.jsp: ...

  10. Hibernate的generator属性

    本文讲述Hibernate的generator属性的意义.Generator属性有7种class,本文简略描述了这7种class的意义和用法. <class name="onlyfun ...