12-002-4 XML文件处理工具类DOM4J

来源:互联网 发布:知乎 唯一视觉怎么样 编辑:程序博客网 时间:2024/05/01 12:59

图文版:http://note.youdao.com/yws/public/redirect/share?id=0a3cb7361fd8684a62ecb7226c4096ab&type=false

资源文件下载:https://yunpan.cn/OcRU7u3ftuURJy  访问密码 1b25


4.1 通过上面的分析,DOM可以解析与输出XML文件,但是文件大小受到限制。SAX虽然可以通过顺序读取来处理大的XML文件,但是却不能输出XML文件。现在来介绍另一种XML文件工具DOM4J可以很好的兼并上面的问题

4.2 首先需要下载DOM4J的开发包:dom4j-1.6.1.jar ,把它拷贝到web项目中的文件夹中

4.3 下面就用DOM4J来进行XML文件的创建

创建Document 用DocumentHelper org.dom4j.DocumentHelper

    下面是一个事例

public class DOM4JWriter {
 public static void main(String[] args)throws Exception {
  Document document = DocumentHelper.createDocument() ;
  Element root = document.addElement("contact") ;
 
  String ids[] = new String[]{"001","002"} ;
  String names[] = new String[]{"小明","小王"} ;
  String ages[] = new String[]{"28","26"} ;
 
  for(int x=0 ;x<ids.length;x++){
   Element member = root.addElement("member") ;
   Element name = member.addElement("name") ;
   Element age = member.addElement("age") ;
   member.addAttribute("id", ids[x]) ;
   name.setText(names[x]);
   age.setText(ages[x]) ;
  }
 
  OutputFormat format = OutputFormat.createPrettyPrint();
  format.setEncoding("utf-8");
  XMLWriter writer = new XMLWriter(new FileOutputStream(new File("f:\\my.xml")),format) ;
  writer.write(document);
 }
}

从上面可以明显发现DOM4J要简单的多,所以以后创建xml文件就用他。

4.4 下面就来实现DOM4J对xml的读取解析操作。由于DOM4J是SAX与DOM的结合,而SAX更适合读取,所以DOM4J就有SAX公共接口的实现

public class DOM4JReader {
 public static void main(String[] args)throws Exception {
  File file = new File("f:\\my.xml") ;
  SAXReader sax = new SAXReader() ;
  Document document = sax.read(file) ;
  Element root = document.getRootElement() ;
  Iterator<Element> iter = root.elementIterator() ;
  while(iter.hasNext()){
   Element ele = iter.next() ;
   System.out.println(ele.elementText("name")) ;
   System.out.println(ele.elementText("age")) ;
   System.out.println(ele.attributeValue("id")) ;
  }
 }
}

0 0
原创粉丝点击