java xml解析 学习笔记(3)——JDOM



 JDOM的目的是成为Java特定文档模型,它简化与XML的交互并且比使用DOM实现更快。由于是第一个Java特定模型,JDOM一直得到大力推广和促进。正在考虑通过“Java规范请求JSR-102”将它最终用作“Java标准扩展”。从2000年初就已经开始了JDOM开发。

    JDOM与DOM主要有两方面不同。首先,JDOM仅使用具体类而不使用接口。这在某些方面简化了API,但是也限制了灵活性。第二,API大量使用了Collections类,简化了那些已经熟悉这些类的Java开发者的使用。

    JDOM文档声明其目的是“使用20%(或更少)的精力解决80%(或更多)Java/XML问题”(根据学习曲线假定为20%)。JDOM对于大多数Java/XML应用程序来说当然是有用的,并且大多数开发者发现API比DOM容易理解得多。JDOM还包括对程序行为的相当广泛检查以防止用户做任何在XML中无意义的事。然而,它仍需要您充分理解XML以便做一些超出基本的工作(或者甚至理解某些情况下的错误)。这也许是比学习DOM或JDOM接口都更有意义的工作。

    JDOM自身不包含解析器。它通常使用SAX2解析器来解析和验证输入XML文档(尽管它还可以将以前构造的DOM表示作为输入)。它包含一些转换器以将JDOM表示输出成SAX2事件流、DOM模型或XML文本文档。JDOM是在Apache许可证变体下发布的开放源码。

下面给出例子简单的介绍下jdom方式解析xml文件的方法:

xml文件:first.xml,放于src目录下

JDOM jar包下载: http://blog.csdn.net/frightingforambition/article/details/22209747

<?xml version="1.0" encoding="UTF-8"?>
<xml-body>
<value>
	<no>
		鲁B1234
	</no>
	<addr>
		山东省青岛市
	</addr>
</value>
<value>
	<no>
		鲁A1234
	</no>
	<addr>
		山东省济南市
	</addr>
</value>
</xml-body>


package Test;

import java.io.File;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;

public class MyXmlReader_jdom { 

	public static void main(String arge[]) { 
		long lasting = System.currentTimeMillis(); 
		try { 
			//创建一个SAXBudilder对象
			SAXBuilder builder = new SAXBuilder();
			//读取first.xml资源
			Document doc = builder.build(new File("src/first.xml"));
			//获取根元素
			Element foo = doc.getRootElement(); 
			//获取根元素下面所有的子元素
			List<Element> allChildren = foo.getChildren("value"); 
			for(int i=0;i<allChildren.size();i++) { 
				System.out.print("车牌号码:" + (allChildren.get(i)).getChild("no").getText()); 
				System.out.println("车主地址:" + (allChildren.get(i)).getChild("addr").getText()); 
			} 
		} catch (Exception e) { 
			e.printStackTrace(); 
		} 
		System.out.println("运行时间:" + (System.currentTimeMillis() - lasting) + "毫秒");
	}
}


运行结果:

java xml解析 学习笔记(3)——JDOM_第1张图片



你可能感兴趣的:(jdom,JDOM解析xml)