轻量级的xml parser: KXML

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

kXML is a small XML pull parser, specially designed for constrained environments such as Applets, Personal Java or MIDP devices.

最小的版本只有11k,比那些庞大的xml解析起确实小好多。当你对xml解析不需要很严格时可以使用它。

下面是使用kxml的一段示例代码:

import org.xmlpull.v1.*;

import java.util.*;

import java.io.*;

import java.net.*;

/**

* A simple example illustrationg some differences of the XmlPull API

* and SAX. For the corresponding SAX based implementation, please refer to

* http://www.cafeconleche.org/slides/sd2001east/xmlandjava/81.html ff. */

public class Weblogs {

static List listChannels()

throws IOException, XmlPullParserException {

return listChannels("http://static.userland.com/weblogMonitor/logs.xml");

}

static List listChannels(String uri)

throws IOException, XmlPullParserException {

Vector result = new Vector();

InputStream is = new URL(uri).openStream();

XmlPullParser parser =

XmlPullParserFactory.newInstance().newPullParser();

parser.setInput(is, null);

parser.nextTag();

parser.require(XmlPullParser.START_TAG, "", "weblogs");

while (parser.nextTag() == XmlPullParser.START_TAG) {

String url = readSingle(parser);

if (url != null)

result.addElement(url);

}

parser.require(XmlPullParser.END_TAG, "", "weblogs");

parser.next();

parser.require(XmlPullParser.END_DOCUMENT, null, null);

is.close ();

parser.setInput (null);

return result;

}

public static String readSingle(XmlPullParser parser)

throws IOException, XmlPullParserException {

String url = null;

parser.require(XmlPullParser.START_TAG, "", "log");

while (parser.nextTag() == XmlPullParser.START_TAG) {

String name = parser.getName();

String content = parser.nextText();

if (name.equals("url"))

url = content;

parser.require(XmlPullParser.END_TAG, "", name);

}

parser.require(XmlPullParser.END_TAG, "", "log");

return url;

}

public static void main(String[] args)

throws IOException, XmlPullParserException {

List urls =

args.length > 0

? listChannels(args[0])

: listChannels();

for (Iterator i = urls.iterator(); i.hasNext();)

System.out.println(i.next());

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航