java学习 (2)xml操作 STAX(增、删、改、查)

STAX 拉模式

推模式:由解析器来调用相应事件方法

拉模式:客户端程序自己控制xml事件,主动调用相关事件方法

pull采用将xml文档传递给解析器,手动通过next触发文档解析事件,在客户端代码中获取当前事件,从而调用相应事件处理方法

当使用xml pull 如果使用Android系统,系统内置无需下载任何开发包,如果javase javaee使用pull需要下载pull单独的开发工具包

1.下载开发工具包  http://www.extreme.indiana.edu/dist/java-repository/xpp3/distributions/        http://www.xmlpull.org/ 获得xpp3-1.1.3.4.C.jar

2.将开发工具包加载进java项目   将xpp3-1.1.3.4.C.jar复制粘贴至项目内,右击改文件,点击Builde Path将改资源地址导入到环境路径中

代码实现:  1.创建xml pull工厂   XmlPullParserFactory

       2.利用工厂创建xml pull解析器  XmlPullParser

 1  @Test
 2     public void xmlPullDemo() throws Exception{
 3         XmlPullParserFactory parserFactory=XmlPullParserFactory.newInstance();
 4         XmlPullParser xmlPullParser=parserFactory.newPullParser();
 5         xmlPullParser.setInput(new FileInputStream("books.xml"),"utf-8");
 6         int eve;
 7         while((eve=xmlPullParser.getEventType())!=XmlPullParser.END_DOCUMENT){
 8             System.out.println(xmlPullParser.getName()); //获取节点名称
 9             String str=xmlPullParser.nextText();//获取文本
10             System.out.println(eve);
11             xmlPullParser.next();            
12         }  
View Code

 写

 1 @Test
 2     public void xmlSerialDemo() throws Exception{
 3         XmlPullParserFactory xmlPullParserFactory=XmlPullParserFactory.newInstance();
 4         XmlSerializer xmlSerializer=xmlPullParserFactory.newSerializer();
 5         xmlSerializer.setOutput(new FileOutputStream("book_bak.xml"),"utf-8");
 6         xmlSerializer.startDocument("utf-8", true);
 7         xmlSerializer.startTag(null, "books");
 8         for(int i=0;i<3;i++){ 
 9             xmlSerializer.startTag(null, "book");
10             xmlSerializer.startTag(null, "name");
11             xmlSerializer.text("java编程高手"+i);
12             xmlSerializer.endTag(null, "name");
13             xmlSerializer.startTag(null, "price");
14             xmlSerializer.text(""+(i+1)*100);
15             xmlSerializer.endTag(null, "price");            
16             xmlSerializer.endTag(null, "book");
17         }
18         xmlSerializer.endTag(null, "books");
19         xmlSerializer.endDocument();        
20     }
View Code

 

posted @ 2015-01-07 20:41  湘_蜗牛  阅读(304)  评论(0编辑  收藏  举报