free_2013

导航

Jdom和Dom4J解析xml文件

samp.xml内容:

<?xml version="1.0" encoding="UTF-8"?>
<HD><!--根目录  -->
 <disk name="C"><!--子元素  -->
  <capacity>8G</capacity><!-- 元素内容-->
  <directories>200</directories>
  <files>1580</files>
 </disk>
 <disk name="D">
  <capacity>10G</capacity>
  <directories>500</directories>
  <files>3000</files>
 </disk>
</HD>

Jdom解析代码:

public class JdomTest {

 /**
  * @param args
  * @throws IOException
  * @throws JDOMException
  */
 public static void main(String[] args) throws JDOMException, IOException {
  // TODO Auto-generated method stub
  //创建文档加载器
  SAXBuilder sb=new SAXBuilder();
  InputStream in=JdomTest.class.getClassLoader().getResourceAsStream("sample.xml");
  //利用输入流加载文档
  Document doc=sb.build(in);
  //获取根元素
  Element root=doc.getRootElement();
  //获取根元素下的子元素
  List< Element> list=root.getChildren();
  for (Element element : list) {
   //遍历子元素获取子元素的属性
   System.out.println("-------------");
   System.out.println("磁盘分区:"+element.getAttributeValue("name"));
   System.out.println("磁盘容量:"+element.getChildText("capacity"));
   System.out.println("文件夹数量:"+element.getChildText("directories"));
   System.out.println("文件数量"+element.getChildText("files"));
   System.out.println("-------------");
  }
 }

 

dom4j解析代码:

public class JdomTest {

 /**
  * @param args
  * @throws IOException
  * @throws JDOMException
  */
 public static void main(String[] args) throws JDOMException, IOException {
  // TODO Auto-generated method stub
  //创建文档加载器
  SAXBuilder sb=new SAXBuilder();
  InputStream in=JdomTest.class.getClassLoader().getResourceAsStream("sample.xml");
  //利用输入流加载文档
  Document doc=sb.build(in);
  //获取根元素
  Element root=doc.getRootElement();
  //获取根元素下的子元素
  List< Element> list=root.getChildren();
  for (Element element : list) {
   //遍历子元素获取子元素的属性
   System.out.println("-------------");
   System.out.println("磁盘分区:"+element.getAttributeValue("name"));
   System.out.println("磁盘容量:"+element.getChildText("capacity"));
   System.out.println("文件夹数量:"+element.getChildText("directories"));
   System.out.println("文件数量"+element.getChildText("files"));
   System.out.println("-------------");
  }
 }

}

 

xml的解析方式有sax和dom解析两种方式,而jdom和dom4j只是解析工具。其中sax解析是针对事件进行解析,效率较高,而最常用的是dom解析,就是从根元素开始对xml进行解析,因为是从头开始,所以当文档很大时,有时效率不高,另外修改删除也不是很方便。
jdom和dom4j用起来差不多,就是方法有一点小不同。

jdom和dom4j的区别请关注

http://www.jb51.net/article/16323.htm

}

 

posted on 2013-07-24 23:57  free_2013  阅读(260)  评论(0)    收藏  举报