站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2ME 专题请教高手:如何存XML?

请教高手:如何存XML?

摘要: 请教高手:如何存XML?


我的程序运行在手机或者PDA上,主要功能是 "存取" XML里面的数据.
现在搭建的平台是: JBuilder + WTK 2.5 Beta;里面有操作XML的三个包:javax.xml.parsers org.xml.sax org.xml.sax.helpers 。提供的是SAX解析方式,所以只能读取XML中的数据,而不能进行其他操作。
要进行其他操作肯定要用到DOM方式。很奇怪,在WTK2.5的随机文档里没有这个方面的内容。不过,偶然间,我发现WTK又支持Document,Node,Element接口的。它的包:org.w3c.dom.* ;
因为Document,Node,Element是接口,所以要用DocumentBuilder 和 DocumentBuilderFactory,而这两个类WTK就不支持了。

请教高手如何解决这个问题?谢谢了。

如果WTK2.5无法实现。能否给另外的方案。如搭建CDC的平台。我在网上找了很久都没有找到相应的方案。我在SUN的CDC论坛上看到他们用的是IBM的J9什么的,哎,我也不是很清楚。


沙发!帮顶


2.5?
什么时候出来的?


刚刚看了下,还真是2.5,原来不是有个2.3beta


...


关注下


我用的是WTK 2.2, 在JRE Libary 里面 wsa.zip 的下面 有com.sun.ukit.jaxp下 有Parser 和ParserFactory, 是从javax.xml.parsers 下SAXParser 和SAXParserFactory 继承来的, 有如下代码:

Parser parser = null;
try{
parser = (new ParserFactory()).newSAXParser();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
try {
if (parser != null) {
parser.parse(new InputSource(this.getClass().getResourceAsStream(fileName)), this);
}
} catch (SAXParseException e) {
System.out.println("Parse error occured!");
e.printStackTrace();
} catch (SAXException e) {
System.out.println("SAX error occured!");
e.printStackTrace();
}

运行结果在parse时候异常SAXParseException

Parse error occured!



也请J2ME下的XML高手指点一下....


你这句里面
parser.parse(new InputSource(this.getClass().getResourceAsStream(fileName)), this);
的这个this是什么? 应该是一个DefaultHandler吧.
我在网上也看了很多关于SAX解析XML的例子.呵呵.
我现在自己用的是Kxml2,加XmlPull的方法.可以存取.
也用过NanoXML,结果因为在里面有个FileNotFoundException,它是J2SE下的异常.在J2ME下所以没法用了.


恩,是这样的.

自定义了
class MyXML extends DefaultHandler
{
void parser();

void startElement()
endElement()
void characters()
}


由于移植J2SE的 代码, 就保留了这种结构,据说J2ME的JSR 172 JAXP 中也可以实现, 而且相关的类都有定义, 谁知执行起来就不好使。

参考 http://www.2565.cn/code/jsp/1/5/30469-4.html


在我用的这个jre中, 有wsa.zip, 是有关xml的读取的, 刚才试了一下这种方法是好使的,上面我贴的错误在于 打开文件的位置应该在MIDlet中,就是这句话 this.getClass().getResourceAsStream(fileName);改正后就可以用J2SE一般的方法读取XML了。不过因为在模拟器中试的,不知道在实际情况中的执行效果怎么样了。

上面的Parser 和ParserFactory类的定义可见:
http://smart.tihlde.org/complete_work/Kildekode/jsr172%20fixed/src/jaxp/ ;





To chunandlee :

我使用的jre 中有m2g.zip 中包含有
org.w3c.dom; 下面有Document.class, 但好像没有转换的操作;
org.w3c.dom.event;
org.w3c.dom.svg;

没有找到J2SE中那个javax.xml.transform的包。
初入J2ME不久,只好帮chunandlee顶了。


To chunandlee

Tt is said that Kxml can support save and fix XML files.

like this:
http://www.open-open.com/open23931.htm


to warmdawn(弱水三千)

我也才学J2ME不久 呵呵 共同学习
你用的是哪个版本的JRE,如1.4 或者 1.5
wsa.zip m2g.zip在哪个目录?
Document Node Element 这几个类都有 但是无法使用的
你说的JAXP这个东西 只能读XML,也就是解析.





我觉得XML在J2ME中使用的话,很不效率!很多XML的问题,还不如用WEBSERVICE这些,在服务器那方解析转化再回传给手机


up,楼上的想法与我的想法一致,不如寻求服务方来解决这个问题.


支持 呵呵


是从nokia下的Prototype_4_0_S60_MIDP_Emulator, 哈哈,怎么个叫法我都不知道。 才学了不到两个月。


我只用过 kxml ,这个就很简单、全部源码,细小!


↑返回目录
前一篇: carbide.j有没有人用过啊, 里面的flw是如何用法 ?
后一篇: WAP中用JSP(wml)写的页面 通过opera怎么访问改JSP页面啊?