现在的位置: 首页 > 综合 > 正文

(一)Java解析XML:XML基本概念的理解

2013年10月10日 ⁄ 综合 ⁄ 共 1308字 ⁄ 字号 评论关闭

JDK中的org.w3c.dom包提供了处理XML的API。要想利用此包中的API来处理XML文件,首先需要理解如下的这些概念:

(1)Node:是整个文档对象模型的主要数据类型,它表示该文档树中的单个节点,根据 DOM的定义,XML
文档中的每个成分都是一个节点,比如:

<!-- comment -->

<service
id="cretae">create service</service>

这里的service(元素节点)、id(属性节点)、"create
service"(文本节点)都是节点,甚至于注释"comment"都是一个节点(注释节点)。

JDK中的Node接口提供了一些常量,用于判断节点的类型:

ATTRIBUTE_NODE :属性节点
COMMENT_NODE :注释节点
TEXT_NODE :文本节点
ELEMENT_NODE:元素节点

XML DOM 把 XML 文档视为一种树结构,这种树结构被称为节点树。以下面的xml文件为例:

<service id="cretae">
    <class path="c:\\"></class>
    <source path="d:\\"></source>
</service>

class节点和source节点是service节点的子节点,service节点是class节点和source节点的父节点,而calss节点和source节点之间是兄弟关系。

(2)Element:Element接口表示 XML 文档中的一个元素,而每个 XML 标签都是是一个元素节点,比如:

<service id="cretae"></service>

这里的service就是一个Element。在JDK中,Element接口继承自Node接口。


(3)Document:Document接口表示整个XML 文档,它是文档树的根,提供对文档数据的基本访问。

解析XML的第一步就是要将XML文件转换为Document对象,首先通过DocumentBuilderFactory获取生成DOM对象树的解析器。

                final DocumentBuilderFactory factory = DocumentBuilderFactory
		        .newInstance();
		try
		{
			final DocumentBuilder builder = factory.newDocumentBuilder();
			logger.debug("create builder success.");
			Document doc = builder.parse(new File(this.path));
			logger.debug("parse xml file success");
		}
		catch (final ParserConfigurationException e)
		{
			logger.error("Constructor document builder error : " + e);
		}
		catch (final SAXException e)
		{
			logger.error("parse file error : " + e);
		}
		catch (final IOException e)
		{
			logger.error("parse file error : " + e);
		}

抱歉!评论已关闭.