J2ME 中 KXML2 解析器解析 xml 文件源代码

 J2ME 中 KXML2 解析器解析 xml 文件源代码

    使用前需要导入 KXML2 解析器包 kxml2-min-2.3.0.jar。此包已经共享至作者的 csdn 资源,读者可以去下载。

    示例用文件 mypoint.xml 内容如下,本文件应该放在 TestXml.java 同一目录下。

<longitude>116.41006</longitude> <latitude>39.92718</latitude>

    TestXml.java 源代码如下:

/** * 文件名:TestXml.java * * 版本信息: * 日期:2009-11-12 * Copyright xxx Corporation 2009 * 版权所有 * */ package com.xxx.util; import java.io.ByteArrayInputStream; import java.io.DataInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import org.kxml2.io.KXmlParser; /** * * 项目名称:Basic7.0 * 类名称:TestXml * 类描述:测试 xml 文件的读取类 * 创建人:Defonds * 创建时间:2009-11-12 下午01:08:39 * 修改人:Defonds * 修改时间:2009-11-12 下午01:08:39 * 修改备注: * @version * */ public class TestXml { private String longitude = "longitude"; private String latitude = "latitude"; private String key = null; /** * main(这里用一句话描述这个方法的作用) * TODO(这里描述这个方法适用条件 – 可选) * TODO(这里描述这个方法的执行流程 – 可选) * TODO(这里描述这个方法的使用方法 – 可选) * TODO(这里描述这个方法的注意事项 – 可选) * @param name * @param @return 设定文件 * @return String DOM对象 * @throws IOException * @Exception 异常对象 * @since CodingExample Ver(编码范例查看) 1.1 */ public static void main(String[] args) throws IOException { TestXml test = new TestXml(); String xml = test.getXml("mypoint.xml"); test.parseXml(xml); } /** * 根据指定文件名返回文件内容 * @throws IOException */ private String getXml(String fileName) throws IOException { String str = null; InputStream is = getClass().getResourceAsStream(fileName); InputStream is2 = getClass().getResourceAsStream(fileName); DataInputStream dis = new DataInputStream(is); DataInputStream dis2 = new DataInputStream(is2); int xmlLength = 0; while(dis.read() >= 0) { xmlLength ++; } byte[] b = new byte[xmlLength]; dis2.read(b); str = new String(b); return str; } /** * 解析xml */ private void parseXml(String xml) { ByteArrayInputStream bytes = new ByteArrayInputStream(xml.getBytes()); try { InputStreamReader reader = new InputStreamReader(bytes); KXmlParser parser = new KXmlParser(); boolean keepParsing = true; parser.setInput(reader); while (keepParsing) { int type = parser.next(); switch(type) { case KXmlParser.START_DOCUMENT: System.out.println("起始节点:" + parser.getName()); break; case KXmlParser.START_TAG: startElement(parser); break; case KXmlParser.END_TAG: //endElement(parser); break; case KXmlParser.TEXT: characters(parser); break; case KXmlParser.END_DOCUMENT: keepParsing = false; break; } } } catch (Exception e){} } public void startElement(KXmlParser parser) throws Exception { String xmlName = parser.getName(); //System.out.println("startElement : " + xmlName); this.key = xmlName; //System.out.println("当前key:" + key); } public void endElement(KXmlParser parser) { //String xmlName = parser.getName(); //System.out.println("endElement : " + xmlName); } public void characters(KXmlParser parser) { String xmlText = parser.getText(); System.out.println(key + "->" + xmlText); if (key.equals(longitude)) { System.out.println(xmlText); } else if(key.equals(latitude)) { System.out.println(xmlText); } this.key = null; } }

你可能感兴趣的:(exception,xml,String,basic,byte,j2me)