标签:
一. 背景知识:
就我所知,在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