Digester解析XML
2012-08-16 17:21
274 查看
books.xml
DigesterXML.java
输出结果:
图书馆:alibaba图书馆
共藏书:3
**************************************
书名:thinking in java 作者:xxx
----------------------------------------
共2章
-----------------显示章节-----------------------
第一章:第一章的标题
第二章:第二章的标题
----------------------------------------
书名:effective java 作者:yyy
----------------------------------------
共1章
-----------------显示章节-----------------------
第一章:第一章的标题
----------------------------------------
书名:lucene in action 作者:zzz
----------------------------------------
共2章
-----------------显示章节-----------------------
第一章:metting lucene
第二章:talk about lucene
----------------------------------------
<?xml version="1.0" encoding="UTF-8" ?> <library name="alibaba图书馆"> <book title ="thinking in java" author="xxx"> <chapter> <no>第一章</no> <caption>第一章的标题</caption> </chapter> <chapter> <no>第二章</no> <caption>第二章的标题</caption> </chapter> </book> <book title="effective java" author="yyy"> <chapter> <no>第一章</no> <caption>第一章的标题</caption> </chapter> </book> <book title="lucene in action" author="zzz"> <chapter> <no>第一章</no> <caption>metting lucene</caption> </chapter> <chapter> <no>第二章</no> <caption>talk about lucene</caption> </chapter> </book> </library>
DigesterXML.java
package com.lucene; import java.io.IOException; import org.apache.commons.digester.Digester; import org.xml.sax.SAXException; public class DigesterXML { public static void main(String[] args) { Digester digester=new Digester(); //是否验证dtd digester.setValidating(false); //将library标签映射到Library.class digester.addObjectCreate("library", Library.class); //解析library节点的属性 digester.addSetProperties("library"); //匹配library/book为book.class digester.addObjectCreate("library/book", Book.class); //设置booke节点的title属性 digester.addSetProperties("title"); //设置booke节点的author属性 digester.addSetProperties("author"); //调用setBookInfo方法设置book的两个属性title、author 含两个参数title、author digester.addCallMethod("library/book", "setBookInfo",2); //标识参数,第一个参数从0开始,为title、第二个参数为author从1开始 digester.addCallParam("library/book", 0, "title"); digester.addCallParam("library/book", 1, "author"); //匹配library/book/chapter为Chapter.class digester.addObjectCreate("library/book/chapter", Chapter.class); //设置chapter对应属性的值 digester.addBeanPropertySetter("library/book/chapter/no", "no"); digester.addBeanPropertySetter("library/book/chapter/caption", "caption"); //解析下一个library/book/chapter digester.addSetNext("library/book/chapter", "addChapter"); //解析下一个library/book digester.addSetNext("library/book", "addBook"); try { Library library = (Library) digester.parse(DigesterXML.class.getClassLoader().getResourceAsStream("books.xml")); System.out.println("图书馆:"+library.getName()); System.out.println("共藏书:"+library.getBookList().size()); System.out.println("**************************************"); for (Book book : library.getBookList()) { System.out.println("书名:"+book.getTitle()+"\t作者:"+book.getAuthor()); System.out.println("----------------------------------------"); System.out.println("共"+book.getChapters().size()+"章"); System.out.println("-----------------显示章节-----------------------"); for (Chapter chapter : book.getChapters()) { System.out.println(chapter.getNo()+":"+chapter.getCaption()); } System.out.println("----------------------------------------"); } } catch (IOException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } } }
输出结果:
图书馆:alibaba图书馆
共藏书:3
**************************************
书名:thinking in java 作者:xxx
----------------------------------------
共2章
-----------------显示章节-----------------------
第一章:第一章的标题
第二章:第二章的标题
----------------------------------------
书名:effective java 作者:yyy
----------------------------------------
共1章
-----------------显示章节-----------------------
第一章:第一章的标题
----------------------------------------
书名:lucene in action 作者:zzz
----------------------------------------
共2章
-----------------显示章节-----------------------
第一章:metting lucene
第二章:talk about lucene
----------------------------------------
相关文章推荐
- 用Digester解析xml到bean
- Digester(xml解析工具)
- Digester解析XML文件浅谈
- Tomcat 8(八)Tomcat解析server.xml的工具—Digester
- Tomcat源码的catalina中利用Digester解析conf/server.xml
- Java 解析 xml 之 Digester
- 理解Tomcat(一) 利用Digester解析xml文件
- Java XML解析之Digester的使用
- 解析XML工具之Digester详细说明
- commons-digester解析xml
- Digester 解析 XML
- Tomcat中Digester解析server.xml文件
- 用Digester解析XML
- xml解析(digester)
- 使用Struts Digester来解析XML文件
- Digester解析xml文件
- 使用Struts Digester来解析XML文件
- Digester解析XML文件
- 使用Digester解析XML配置文件
- tomcat之catalina使用Digester解析XML配置文件