Sony EriCSSon发布了更好支持企业级应用程序开发的新JSR,这其中就包括J2ME Web Service 1.0(JSR 172),索尼爱立信的W600就支持了JSR172。本文讲述如何使用JSR 172提供的API来解析xml。
我们知道JSR172是由两个部分组成的:
1. 一个轻量级的标准XML解析器
2. Web Services的远程调用API
其中这个JSR172实现的轻量级的XML解析器是JAXP1.2(java API for XML PRocessing)的一个子集。我们可以查看WTK提供的API看到j2me-xml提供的类一共只有12个,这说明这个轻量级的XML解析器是适合在移动电话这种资源受限设备上运行的。下面我们通过一个例子介绍如何使用JSR 172解析XML,首先我们需要预备一个XML文件放在项目当中,内容如下:
/* * Phone.java * * Created on 2005年8月6日, 下午9:40 * * To change this template, choose Tools Options and locate the template under * the Source Creation and Management node. Right-click the template and choose * Open. You can then make changes to the template in the Source Editor. */
/** * * @author Administrator */ public class Phone {
private String colour = ""; private String name = ""; /** Creates a new instance of Phone */ public Phone() { }
public String getColour() { return colour; }
public void setColour(String colour) { this.colour = colour; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public void startDocument() throws SAXException {}
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { System.out.println("the qName is "+qName); if(qName.equals("phone")) { Phone phone = new Phone(); phones.addElement(phone); }
tagStack.push(qName); System.out.println("the tag stack's length is "+tagStack.size()); }
public void characters(char[] ch, int start, int length) throws SAXException { String chars = new String(ch, start, length).trim(); System.out.println("the character is "+chars);