标签:
一. 背景知识:
就我所知,在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} } }
标签:
原文地址:http://blog.csdn.net/zdp072/article/details/44958739