二、J2ME简单的行情软件--得到数据(解析xml)
来源:互联网 发布:mega软件下载 编辑:程序博客网 时间:2024/06/10 04:35
在J2ME中得到数据
我的项目主要是通过PHP连接ICE得到行情数据并将其转换为XML类型的数据,然后在J2ME中解析XML。
在J2ME中我主要用KXML来解析,主要用到KXML中的KXmlParser.java、XmlPullParser.java、XmlPullParserException.java这三哥类,我自己感觉还是比较简单,J2ME中主要是通过HttpConnection来打开一个连接地址得到数据:
我这里主要写了两个方法来得到数据:
/**
* 主用用来得到数据并设置一些参数
* @param url 得到数据的URL地址
*/
public static Vector getVectorData(String url){
InputStream is = null;
try {
//实例化HttpConnection类
mHttpConnection=(HttpConnection) Connector.open(url);
//设置请求的方法、得到数据的类型
mHttpConnection.setRequestMethod(HttpConnection.GET);
mHttpConnection.setRequestProperty("Content-Type", "application/xml");
mHttpConnection.setRequestProperty("User-Agent", "Profile/MIDP-2.0 Configuration/CLDC-1.1");
mHttpConnection.setRequestProperty("Content-Language", "en-US");
//得到响应的状态
int rc=mHttpConnection.getResponseCode();
if(rc!=HttpConnection.HTTP_OK){
mHttpConnection.close();
}
//得到数据流
is=mHttpConnection.openInputStream();
return Util.getData(is);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 主要用来解析数据流,将其转换为Vector
* @param is 数据流
* @return 返回一个包含了时间,栏目信息列表的一个数组
*/
public static Vector getData(InputStream is) {
KXmlParser parser = new KXmlParser();
try {
//下面主要是对数据流的操作,并且将它转换为utf-8的编码
byte[] b = new byte[1024];
int len = 0;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
while ((len = is.read(b)) != -1) {
dos.write(b, 0, len);
}
byte[] data = baos.toByteArray();
String strxml = new String(data, "utf-8");
if(strxml.length()>0){
// 必须让xml也"<?"开头
strxml = strxml.substring(strxml.indexOf("<?", 0), strxml.length()).trim();
ByteArrayInputStream bin = new ByteArrayInputStream(strxml.getBytes("UTF-8"));
parser.setInput(bin, "UTF-8");
//主要用来判断是否为xml的开头,结尾,标签的开头和结尾
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
//标签开头
case XmlPullParser.START_TAG:
//得到标签的名称
strtag = parser.getName();
if ("fopen".equals(strtag)) {
//得到xml的数据
myData.setFopen(parser.nextText());
}
break;
//在xml中是标签结尾
case XmlPullParser.END_TAG:
strtag = parser.getName();
break;
}
//主要用来判断是否为xml的开头,结尾,标签的开头和结尾
eventType = parser.next();
}
return vector;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
- 二、J2ME简单的行情软件--得到数据(解析xml)
- 一、J2ME简单的行情软件--简介
- 三、J2ME简单的行情软件--MVC
- 四、J2ME简单的行情软件--RMS
- 行情软件的实现
- 解析XML字符串,得到各个节点数据
- 解析xml数据的简单demo
- Kissxml 解析 XML数据的简单Demo
- GDataXMLNode解析xml数据的简单应用
- 使用SAX解析简单的XML数据
- J2ME 的XML 解析器 kXML
- 一个简单的XML for J2ME
- 一个简单的XML for J2ME
- j2me解析xml
- KXML1.21(STABLE)解析XML数据范例(J2ME客户端)
- J2ME 解析wml数据的例子
- xml的解析二
- SAX解析百度车联网天气查询得到的xml数据
- 男人和女人的区别
- FreeBSD利用ports安装MySQL+Apache+PHP+phpMyAdmin
- delphi 2010 获取目录下文件列表
- 基于Visual Studio2010开发office2010办公自动化应用(8)自定义ExcelTemplate
- 程序中输出不定项参数的trace信息之解决方法
- 二、J2ME简单的行情软件--得到数据(解析xml)
- 经典电影列表
- 几个实用的 计算机CMD 命令
- C# 重新启动程序(并非重启计算机)
- Visual Studio 2010 两种破解方法详解
- AspTreeList
- SQL多级关系的表示
- 在c++程序中重启自己的一种方法
- InstallShield 中文函数解释