Jdom解析xml

一. 背景知识:

就我所知,在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}
	}
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值