j2me解析xml
来源:互联网 发布:二维旋转矩阵公式 编辑:程序博客网 时间:2024/04/28 16:26
测试了下,虽然xmlpul和nanoxml两种的两个6,7k的小包都不行,但大的没试,还是记录下来。
nonoxml方式
nonaxml方式读取要简单点,有getChildren()函数等。具体没自己看。
下面是kxml2方式,直接转网上的
装上喵了下,不能直接获得子节点数,得根据eventType判断,也不能直接取某个节点的数据。要next()下去。其中next()是下一个点(这里xml文件中的各个开始标记,结束标记和内容都可以算一个点)。而nexttag(),nexttext就是分类的.
例如对于下面的串:
String str="<root>/n"+"<type1>/n"+"<a>/n"+"001</a>/n"+"<b>/n"
+"002</b>/n"+"</type1>/n"+"<type2>/n"+"<a>/n"+"003</a>/n"+"<b>/n"+"004</b>/n"+"</type2>/n"+"</root>/n";
root的next是空,再next是type1,再next是type1,是空,然后是a,然后是001....
而001的nexttext是空(</a>和<b>之间xml认为为空,next占一位。)
kxml2也就是在xmlpull上封装了下,多了几个文件,大了4K
nonoxml方式
- String Result="<root>/n"+"<type1>/n"+"<a>/n"+"001</a>/n"+"<b>/n"
- +"002</b>/n"+"</type1>/n"+"<type2>/n"+"<a>/n"+"003</a>/n"+"<b>/n"+"004</b>/n"+"</type2>/n"+"</root>/n";
- ByteArrayInputStream bais = new ByteArrayInputStream(str.getBytes());
- Hashtable entities = new Hashtable();
- entities.put("foo", "bar");
- XMLElement xml = new XMLElement(entities, false, false);
- // FileReader reader = new FileReader(args[0]);
- xml.parseString(Result);
- for(int i=0;i<xml.countChildren();i++){
- System.out.println(xml.getChildren().size());
- for(int j=0;j<xml.getChildren().size();j++){
- System.out.println(xml.getChildren().elementAt(j).toString());
- }
- }
下面是kxml2方式,直接转网上的
- XmlPullParser parser = new KXmlParser();
- ByteArrayInputStream bais = new ByteArrayInputStream(Result.getBytes());
- System.out.println("2");
- InputStreamReader isr = new InputStreamReader(bais);
- parser.setInput(isr);
- int eventType = parser.getEventType();
- // 如果不是整个文档的结尾,那么就读取,这样子就达到遍历整个文档的目的
- while (eventType != XmlPullParser.END_DOCUMENT) {
- if (eventType == XmlPullParser.START_DOCUMENT) {
- System.out.println("当前节点的名称:" + parser.getName());
- System.out.println("当前节点下的属性:");
- int attrCount = parser.getAttributeCount();
- for (int i = 0; i < attrCount; i++) {
- System.out.println(parser.getAttributeName(i));
- }
- } else if (eventType == XmlPullParser.START_TAG) {
- System.out
- .println("---------start tag------------------------------");
- System.out.println("节点的名称:" + parser.getName());
- System.out.println("当前节点下的属性:");
- int attrCount = parser.getAttributeCount();
- for (int i = 0; i < attrCount; i++) {
- System.out.println(parser.getAttributeName(i) + ":"
- + parser.getAttributeValue(i));
- }
- // 这里可以根据不同的 节点名称来作出不同的反应,比如text需要单独处理什么
- } else if (eventType == XmlPullParser.TEXT) {
- System.out.println("---------text tag---------");
- // 已经取不到值了
- System.out.println("本text属于:" + parser.getAttributeValue("LEVEL_CODE", "LEVEL_CODE"));
- System.out.println(parser.getText());
- } else if (eventType == XmlPullParser.END_TAG) {
- System.out.println("---------end tag---------");
- System.out.println("当前节点的名称" + parser.getName());
- // 可以在这这里把本tag的内容处理掉,比如类似将其放到某个容器中
- }
- eventType = parser.next();
- }
例如对于下面的串:
String str="<root>/n"+"<type1>/n"+"<a>/n"+"001</a>/n"+"<b>/n"
+"002</b>/n"+"</type1>/n"+"<type2>/n"+"<a>/n"+"003</a>/n"+"<b>/n"+"004</b>/n"+"</type2>/n"+"</root>/n";
root的next是空,再next是type1,再next是type1,是空,然后是a,然后是001....
而001的nexttext是空(</a>和<b>之间xml认为为空,next占一位。)
kxml2也就是在xmlpull上封装了下,多了几个文件,大了4K
- j2me解析xml
- J2ME中的XML解析器
- 关于j2me中解析xml
- 在J2ME开发中解析XML
- 在J2ME开发中解析XML
- 在J2ME开发中解析XML
- 在J2ME开发中解析XML
- 在J2ME开发中解析XML(1)
- j2me中kxml解析xml实例
- j2me中kxml解析xml实例
- J2ME使用Kxml2包解析XML
- J2ME KXML 解析中文xml代码示例
- J2ME 的XML 解析器 kXML
- 在 j2me 使用kxml2解析xml
- j2me中kxml解析xml实例----2.xml
- J2ME 中 KXML2 解析器解析 xml 文件源代码
- 分享一个自己写的J2ME SAX XML解析器.
- 二、J2ME简单的行情软件--得到数据(解析xml)
- 遗传模拟退火算法
- 用FPGA实现DVB码流分析功能的嵌入式设计方案
- 一种用VHDL设计嵌入式Web Server的方案
- 用UML建模开发嵌入式软件
- 嵌入式linux系统与主机通过串口传输文件 Feora 8
- j2me解析xml
- VC实现对不同信号波形相似程度的判别
- 可切换视图的单文档静态分割窗口总结
- 三极管代替MAX232集成电路的制作
- 超小型智能热释电红外检测器组件
- String和StringBuffer的区别
- 2008最强哲理网络语录
- 在ArcGisEngine 开发中如何在Toolbar控件上添加Combobox等其他控件
- asp.net2.0sql2005免费空间