XML認證教程:DOM Parser
DOM= Document Object Model,文檔對象模型,DOM可以以一種獨立於平臺和語言的方式訪問和修改一個文檔的內容和結構。
DOM基礎
在開始使用 DOM 之前,瞭解它實際表示什麼是值得的。DOM Document 是以層次結構組織起來的節點,或信息片段,的集合。這種層次結構允許開發 者瀏覽樹來查找特定信息。通常,分析結構需要在完成任何工作之前裝入整個 文檔並且裝入層次結構。
由於 DOM 是基於信息的層次結構,因此它被稱爲是基於樹的。
對於極其大的文檔,裝入整個文檔並對該文檔進行解析會很慢且佔用大量資源, 所以要用其它方式來處理數據。一些基於事件的模型,如 Simple API for XML(SAX),是工作在數據流之上,在數據流經過時對其進行處理。基於事件 的 API 消除了在內存中構建數據樹的需要,但它不允許開發者實際更改原始 文檔中的數據。
另一方面,DOM 還提供了一個 API,該 API 允許開發者爲創建應用程序而在樹的任何地方添加、編輯、移動或除去節點。
DOM 基本的節點類型
XML 中最常見的.節點類型:
Node: DOM 基本的數據類型。
Element: 您將最主要處理的對象是 Element。
Attr: 代表一個元素的屬性。
Text: 一個 Element 或 Attr 的實際內容。
Document: 代表整個 XML 文檔。一個 Document 對象通常也被稱爲一棵 DOM 樹。
較不常見的節點類型:CData、註釋、處理指令和文檔片段:
CData:“字符數據”的縮寫註釋:註釋包含有關數據的信息,通常應用程序會忽略它們。處理指令:PI 是專門針對應用程序的信息。文檔片段:爲了形成良好的格式,文檔只能有一個根元素。有時,必須臨時創建幾組元素,這些元素不是滿足需求所必要的。文檔片段類似於這樣:
Silver Show Saddle, 16 inch
825.00
1
Premium Cinch
49.00
1
解析文檔的三步過程
爲了使用 XML 文件中的信息,必須解析該文件以創建 Document 對象。
Document 對象是一個接口,所以不能直接實例化;相反,應用程序一般使用 factory。確切的過程隨實現的不同而不同,但想法是相同的。在示例 JAXP 環境中,解析文件是一個三步過程:
創建 DocumentBuilderFactory。該對象將創建 DocumentBuilder。
創建 DocumentBuilder。 DocumentBuilder 將實際進行解析以創建 Document 對象。
解析該文件以創建 Document 對象。
如果需要,在不必更改代碼的情況下,JAXP 允許插進不同的解析器。讓我們繼續,開始構建應用程序。
基本的應用程序
從創建基本的應用程序,名爲 OrderProcessor 的類開始。
import mentBuilder;
import mentBuilderFactory;
import ;
import ment;
public class OrderProcessor {
public static void main (String args[]) {
File docFile = new File("");
Document doc = null;
try {
DocumentBuilderFactory dbf = nstance();
DocumentBuilder db = ocumentBuilder();
doc = e(docFile);
} catch (Exception e) {
t("Problem parsing the file.");
}
}
}
首先,Java 導入必要的類,然後創建 OrderProcessor 應用程序。在本教程中的這個示例將只處理一個文件,所以爲簡短起見,該應用程序包含對它的直接引用。
應用程序在 try-catch 塊外部定義了 Document 對象,以便在後面使用該對象。try-catch 使您能執行可能會拋出異常的一些操作,這樣不會危及整個應用程序。如果異常拋出,則應用程序簡單地執行相應的 catch 代碼。
在 try-catch 塊內部,應用程序創建 DocumentBuilderFactory,然後使用它來創建 DocumentBuilder。最後,DocumentBuilder 解析該文件以創建 Document。
DOM 常用方法
ocumentElement()
返回文檔的根(root)元素。
irstChild() and astChild()
返回給定 Node 的第一個子女。
extSibling() and reviousSibling()
這些方法返回下一個或前一個給定 Node 的同胞。
ttribute(attrName)
對給定的 Node,返回給定名稱的屬性。例如,如果您要獲得名爲 id 屬性 的對象,可調用 getAttribute("id")。
編輯文檔
更改節點數據
odeValue(elemValue);
添加節點
String totalString = new Double(total)ring();
Node totalNode = teTextNode(totalString);
//Document 對象創建新的文本節點,該節點帶有作爲值的 totalString
Element totalElement = teElement("total");
//創建新元素 total
ndChild(totalNode);
// 將節點添加到新的 total 元素。
rtBefore(totalElement, irstChild());
//將新元素添加到 Document,指定新的 Node,然後指定新 Node 在 Node 之前
除去節點
Node deadNode = arentNode()veChild(thisOrderItem);
替換節點
Element backElement = teElement("backordered");
//創建新元素 backordered
Node deadNode =
arentNode()aceChild(backElement,thisOrderItem);
創建和設置屬性
Element backElement = teElement("backordered");
//創建新元素 backordered
ttributeNode(teAttribute("itemid"));
//創建新屬性 itemid
String itemIdString = ttributeNode("itemid")odeValue();
//取得thisOrderItem的屬性itemid的值
ttribute("itemid", itemIdString);
//設置backElement的屬性item的值,可以省略createAttribute
Node deadNode =
arentNode()aceChild(backElement,thisOrderItem);
除去屬性
Element thisOrder = (Element)(orderNum);
Element customer = (Element)lementsByTagName("cusomertid")(0);
veAttribute("limit");
//去除屬性limit
相關文章
-
XML認證知識點:DOM Parser
DOM Document 是以層次結構組織起來的節點,或信息片段的集合。這種層次結構允許開發者瀏覽樹來查找特定信息。通常,分析結構需要在完成任何工作之前裝入整個文檔並且裝入層次結構。 基本的應用程序從創建基本的應用 -
XML認證教程:SAX Parser
SAX 是由 XML-DEV 郵件列表的成員開發的,Java 版本由 David Megginson 維護。他們的目的是提供一種更自然的方法來使用 XML, 這種方法不會涉及到使用 DOM 的那種開銷。 什麼是 SAX讀取和操縱 XML 文件的標準方法是 D -
MS SQL Server Management Studio Express安裝圖文具體步驟
有關母親節優秀演講稿 篇1尊敬的各位老師,同學們:大家好!我今天演講的題目是《濃情五月,感恩母親》。有一個人,她永遠佔據在你心最柔軟的地方,你願用自己的一生去愛她;有一種愛,它讓你肆意的索取、享用,卻不要你任何的回報&h -
XML認證知識點:SAX Parser
當品味完一部影視作品後,相信大家有很多值得分享的東西吧,爲此需要好好認真地寫觀後感。那麼你真的懂得怎麼寫觀後感嗎?以下是小編整理的觀看《勇往直前的我們》之開學消防第一課有感,僅供參考,歡迎大家閱讀。觀看《勇往直 -
FilmsandTVProgrammes教案設計
禮儀是禮貌的具體體現,是人們在日常生活中,特別是交際場合,互相問候、致意、祝願、慰問以及給予必要的協助與照料的慣用形式,在商務活動中,禮儀十分重要。下面是小編爲大家收集關於男士商務禮儀着裝知識,歡迎借鑑參考。男士 -
XML認證考試知識點:Parser
一個 XML Parser(解析器)是一段可以讀入一個文檔並分析其結構的代碼。下面小編爲大家整理了關於Parser的XML認證考試知識點,一起來看看吧: 如何使用一個解析器通常而言,使用一個解析器需要如下步驟:創建一個解析器對象 -
Jolie drops battle over perfume named Shilohy英語作文
自願退學申請書怎麼寫2022 篇1敬愛的院領導:你們好!我感謝學院給我這樣一個低分考生讀大學的機會,承蒙這1年來學院的培養和教導。在輕鬆愉快的學習氛圍下,我萌發了退學的想法,考慮再三,現正要將此想法付誅行動。後經過輔導 -
Adobe認證Macromedia Dreamweaver8考試大綱
試題說明考題數量:共60 題考試時間:90 分鐘試題種類:單選題和多選題 1、 基礎(2 道題)掌握網頁設計的基本工作流程,瞭解Dreamweaver 在流程中的重要性瞭解HTML 的基本語法,熟悉並且會修改常用的HTML 標籤掌握基本使用原 -
Adobe認證Premiere Pro CS6考試大綱
人口老齡化問題已經成爲現今中國甚至世界各國廣泛關注的社會性問題之一。據國家統計局人口和就業統計司XX年全國人口變動情況抽樣調查數據顯示,我國65歲及以上人口占全國總人口比重已經達到8.1%,而世界平均水平約爲7.0% -
Adobe認證Premiere Pro CS4考試大綱
Adobe Premiere Pro CS4是一款常用的視頻編輯軟件,是一款編輯畫面質量比較好的軟件,有較好的兼容性,且可以與Adobe公司推出的其他軟件相互協作。這款軟件廣泛應用於廣告製作和電視節目製作中。考試數量:考試試題共40道考