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

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);
		}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章