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;
}