您的位置:首页 > 编程语言 > Java开发

XML_Pull解析(1)

2014-02-04 12:23 337 查看
  在上篇关于IO流中的

StreamTokenizer类介绍中,已经了解了一些关于通过回调事件方法,迭代解析字符的思想, 下面正式开始学习XMLPULL解析(1)

    1.它是一个开源项目,如果需要在JavaEE使用它,则需要从官网下载jar包安装至(add build path)MyEclipse.

     注意:android系统中默认支持XMLPULL,则不需要重新去官网下载。

   
    2.我们要解析book_bak.xml中的文件:
  下面通过简单实例说明:《查找指定书名的价格》
      package day5;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import org.junit.Test;

import org.xmlpull.v1.XmlPullParser;

import org.xmlpull.v1.XmlPullParserException;

import org.xmlpull.v1.XmlPullParserFactory;

//StAx :xmlpull解析步骤:

public class XMLPulldemo {
@Test
public void demo1() {
// 1.搭建工厂,生成解析器
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xpp = factory.newPullParser();

                        //向解析器中导入需要解析的xml文件以及文件的编码格式
xpp.setInput(new FileInputStream("books_bak.xml"), "utf-8");

int event = 0;
String bookname = null;
boolean isFound = false; //设置标志位

// 2构建循环迭代器
while ((event = xpp.getEventType()) != XmlPullParser.END_DOCUMENT) {
if (event == xpp.START_TAG) {
System.out.println(xpp.getName() + "开始标签---");
}
// if(event==xpp.END_TAG){
// System.out.println(xpp.getName()+"结束标签---");
// }
if ((event == XmlPullParser.START_TAG)
&& xpp.getName().equals("name")) {
bookname = xpp.nextText();
System.out.println(bookname);
if (bookname.equals("thin2 in java")) {
System.out.println(bookname);
isFound = true;
}
}
if (event == XmlPullParser.START_TAG
&& xpp.getName().equals("price") && isFound == true) {
System.out.println(xpp.nextText());
break;
}
xpp.next();
}
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<books xmlns="http://www.example.org/books" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/books books.xsd">
<book>
<name>think in java</name>
<price>98</price>
</book>
<book>
<name>thin2 in java</name>
<price>91</price>
</book>

</books>

     上面即简单的xmlpull解析入门介绍,通过代码要掌握的知识点有

1.如何搭建xmlPull解析器?

2解析器xmlpullparse中有哪些事件类型常量?
Start-Doument

Th following event types are seen by next()
START_TAGAn XML start tag was read.TEXTText content was read; the text content can be retreived using the getText() method. (when in validating mode next() will not report ignorable whitespaces, use nextToken() instead)END_TAGAn end tag was readEND_DOCUMENTNo more events are available3.掌握循环迭代解析的原理。

下一篇中我将介绍如何通过xmlPULL解析进行简单的CURD(create update read delete)操作文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xml 解析 javaee