1、首先需要在你的工程资源中引入kxml.zip(kxml 1.21 stable version)
http://kxml.objectweb.org/software/downloads/
2、然后你建立一个httpconnection发送url请求,返回为in
3、最后解析in内容,如果包含中文内容,注意需要设置读入字节格式为UTF-8,否则会出现乱码。
比如从google cn上寻找一个酒店,需要获取其名字,地址,电话,坐标信息,输出格式为kml,url请求为
http://ditu.google.cn/maps?output=kml&hl=zh-CN&sll=31.2309321,121.4755366&start=0&num=10&q=酒店
那么解析返回kml信息的代码片断如下:
public void parse(InputStream in) throws IOException {
System.out.println("Enter parse:in");
Reader reader = new InputStreamReader(in,"UTF-8");
XmlParser parser = new XmlParser(reader);
ParseEvent pe = null;
parser.skip();
parser.read(Xml.START_TAG, null, "kml");
parser.skip();
parser.read(Xml.START_TAG, null, "Folder");
boolean trucking = true;
//boolean first = true;
while (trucking) {
pe = parser.read();
if (pe.getType() == Xml.START_TAG) {
String name = pe.getName();
if (name.equals("Placemark")) {
String title, address, coordinates, snippet, tel;
title = address = coordinates = snippet = tel = null;
while ((pe.getType() != Xml.END_TAG) ||
(pe.getName().equals(name) == false)) {
pe = parser.read();
if (pe.getType() == Xml.START_TAG &&
pe.getName().equals("name")) {
pe = parser.read();
title = pe.getText();
}
else if (pe.getType() == Xml.START_TAG &&
pe.getName().equals("coordinates")) {
pe = parser.read();
coordinates = pe.getText();
}
else if (pe.getType() == Xml.START_TAG &&
pe.getName().equals("Snippet")) {
pe = parser.read();
snippet = pe.getText();
//简述的格式是 "address<br/>tel no"
int beg = snippet.indexOf("<");
int end = snippet.indexOf(">");
address = snippet.substring(0,beg);
tel = snippet.substring(end,snippet.length());
}
}
// 这里的Listener是处理xml解析结果的抽象接口,通常由对xml感兴趣的Form对象实现
mResultListener.itemParsed(title, address, coordinates, tel);
}
else {
while ((pe.getType() != Xml.END_TAG) ||
(pe.getName().equals(name) == false))
pe = parser.read();
}
}
if (pe.getType() == Xml.END_TAG &&
pe.getName().equals("kml"))
trucking = false;
}
}
分享到:
相关推荐
**描述:“在J2ME下对XML文件进行解析的示例源码及帮助文件”指出,该压缩包不仅包含了实际的源代码,还有相关的帮助文件,以便开发者理解和应用XML解析技术。** 在J2ME平台中,由于资源限制,XML解析不像在Java SE...
KXML2是一个用于Java平台上的轻量级XML解析库,主要应用于移动设备等资源受限的环境中。它采用Pull解析模式,即开发者通过一系列方法调用来“拉取”XML文档中的数据,而不是由解析器主动推送数据给应用程序。这种...
在J2ME中解析XML,通常使用KXML或NanoXML等轻量级库,因为这些库占用资源少,适合内存有限的设备。开发者需要编写代码来读取XML文件,解析其结构,并将数据转换为游戏内可使用的对象。 **4. 创建游戏架构** 一个...
《深入理解KXML2:解析XML的J2ME利器》 KXML2,作为一个轻量级的XML解析库,尤其在J2ME(Java 2 Micro Edition)环境中,它扮演了重要的角色。J2ME是Java平台的一个子集,主要用于嵌入式设备,如手机、智能手表等,...
- 由于J2ME不支持标准的Java XML解析库,可能需要使用轻量级的解析器,如KXML。 - 网络连接的建立和关闭需妥善处理,防止资源泄露。 - 考虑到网络环境的不稳定,应做好异常处理和重试机制。 5. **应用场景** - ...
7. `samples_midp`和`samples`目录:提供了一些示例代码,帮助开发者理解和学习如何使用kxml2进行XML解析。midp表示Mobile Information Device Profile,是J2ME的一部分,意味着这些示例也适用于移动设备环境。 8. ...
"j2me-ws.rar" 可能包含 J2ME 库、示例代码或工具,帮助开发者创建和消费 Web 服务。 3. **KJava 和 MIDP** KJava 是 J2ME 的一部分,它是一个虚拟机,用于执行 J2ME 应用。MIDP 提供了类库和 API,用于创建具有...
J2ME 不包含内置的解析库,所以可能需要手动编写解析器或者使用第三方库,如 KXML 或 JSON.org 提供的 JSON 解析器。 4. **数据展示**:解析后的天气信息将显示在用户界面上,可能包括当前温度、天气状况、风速等。...
1. **书本作者的资源收集网站**:提供由作者Eric Giguere收集的相关资源,包括代码示例和技术文档等。 - **网址**:http://www.ericgiguere.com/microjava/ 2. **Chicago Wireless Developer User Group**:这个...