码迷,mamicode.com
首页 > 其他好文 > 详细

Jdom解析xml

时间:2015-04-09 13:43:51      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

一. 背景知识:

就我所知,在java中有四种解析xml的方法:dom4j、jdom、dom、sax


二. DOM解析(dom4j/jdom/dom) 与 SAX解析:

1. 如果打算对数据作出更改并将它输出为xml,那么DOM是适当的选择

2.对于大型文件,sax是最佳选择

3. 如果你需要引用已处理过的大量信息,那就选DOM吧。


三. 性能比较:

1) dom4j性能最好,目前很多开源项目使用dom4j。

2) JDOM和DOM在性能测试表现不佳,测试10M文档时内存溢出,如果是小文档可以考虑使用

3) SAX表现还可以,这要依赖于它特定的解析方法 - 事件驱动


四. Jdom示例:

1. xml文件

<?xml version="1.0" encoding="UTF-8"?>
<CodeMap>
	<Country code="ABW" mapsTo="AW" />
	<Country code="AFG" mapsTo="AF" />
	<Country code="AGO" mapsTo="AO" />
	<Country code="UA" mapsTo="UA" />
	<Country code="UZ" mapsTo="UZ" />
	<Country code="YT" mapsTo="YT" />
</CodeMap>
2. Jdom解析
public class Jdom {
	@SuppressWarnings("unchecked")
	public static void main(String[] args) throws Exception {
		Map<String, String> map = new HashMap<String, String>();
		SAXBuilder saxBuilder = new SAXBuilder(false); 
		FileInputStream inputstream = new FileInputStream("D:\\Country.xml");
		InputStreamReader reader = new InputStreamReader(inputstream, "UTF-8");
		Document documnet = saxBuilder.build(reader); 
		Element root = documnet.getRootElement();
		List<Element> eList = root.getChildren();
		for (Element element : eList) {
			String key = element.getAttribute("code").getValue();
			String value = element.getAttribute("mapsTo").getValue();
			map.put(key, value);
		}
		System.out.println(map); // {UA=UA, AGO=AO, ABW=AW, AFG=AF, UZ=UZ, YT=YT}
	}
}


Jdom解析xml

标签:

原文地址:http://blog.csdn.net/zdp072/article/details/44958739

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!