XML認證考試知識點:Parser
一個 XML Parser(解析器)是一段可以讀入一個文件並分析其結構的程式碼。下面小編為大家整理了關於Parser的XML認證考試知識點,一起來看看吧:
如何使用一個解析器
通常而言,使用一個解析器需要如下步驟:
建立一個解析器物件
將您的 XML 文件傳遞給解析器
處理結果
構建一個 XML 應用顯然遠遠超出這些,但通常一個 XML 的應用將包含這些流程。
解析器種類
有不同的方法來劃分解析器種類:
驗證或非驗證解析器
支援 Document Object Model (DOM) 的解析器
支援 Simple API for XML (SAX) 的解析器
特定語言編寫的解析器 (Java, C++, Perl 等)
接下來我們將討論這幾種解析器的各自特點.
驗證或非驗證解析器
如我們在前面所提及的,XML 文件如果使用一個 DTD 並符合 DTD 中的規則將被稱為有效文件(valid document)。符合基本標記規則的 XML 文件被稱為格式正確文件(well-formed document)。
XML 規範要求所有的解析器當其發現一個文件不是格式正確時要報錯。
驗證(Validation)則是另一個問題了。驗證解析器(Validating parser)在解析 XML 文件同時進行驗證。非驗證解析器(Non-validating parser) 忽略所有的驗證錯誤。
換而言之,如果一個 XML 文件是格式正確的時,一個非驗證解析器並不關注文件是否符合其對應 DTD 所指定的規則(如果有的話)。
為何使用非驗證解析器?
速度和效率。要一個 XML 解析器處理 DTD 並確保每個 XML 的元素符合在 DTD 中的規則需要相當大的開銷。如果您確定一個 XML 文件是有效的(可能來自一個數據源),那就沒有必要再次驗證它了。
同樣,有時您所需要的只是從一個文件中找出 XML 的標記。一旦您有了這些標記,您可以將資料從中提取出然後加以處理。如果這就是您所需要的,一個非驗證解析器就是正確的.選擇。
Document Object Model (DOM)
文件物件模型(Document Object Model)是 World Wide Web Consortium(W3C) 的正式推薦。它定義了一個介面使得程式可以存取和更新 XML 文件的風格、結構和內容。支援 DOM 的 XML 解析器實現該介面。
該規範的第一版,DOM Level 1,可從 獲得。
當您用一個 DOM 解析器來解析一個 XML 文件時,您將獲得一個包含文件中所有元素的樹結構。DOM 提供了不同的功能來檢查文件的內容和結構。
Simple API for XML (SAX)
SAX API 是另一種處理 XML 文件內容的方法。一個既成事實的標準,它由 David Megginson 和 XML-Dev 郵件列表其它成員所開發。
要檢視完整的 SAX 標準,參見 。要參加 XML-Dev 郵件列表,傳送郵件到 其中包含: subscribe xml-dev。
當您使用 SAX 解析器來解析 XML 文件時,解析器在文件的不同處將產生事件。由您來決定對每個事件如何處理。
SAX 解析器會在以下情況下產生事件:在文件開始和結束時,在一個元素開始和結束時,或者它在一個元素中找到字元時,以及其它若干點。您可編寫 Java 程式碼來處理每個事件,以及如何處理從解析器獲得的資訊。
何時使用 SAX?何時使用 DOM?
為了確定哪種介面適合您,您需要理解所有介面的設計要點,而且需要理解應用程式用您將要處理的 XML 文件來做什麼。考慮下面的問題將有助於您找到正確的方法。
要用 Java 編寫應用程式嗎?
JAXP 使用 DOM、SAX 和 JDOM;如果您用 Java 編寫程式碼,那麼您應使用 JAXP 將您的程式碼與各種解析器實現的細節隔離。
應用程式將如何部署?
如果您的應用程式將要作為 Java applet 部署,那麼您會希望使要下載的 程式碼數量最小,別忘了 SAX 解析器比 DOM 解析器小。還要知道使用 JDOM 時,除了 SAX 或 DOM 解析器之外還要求編寫少量的程式碼。
一旦解析了 XML 文件,還需要多次訪問那些資料嗎?
如果您需要回過頭來訪問 XML 檔案的已解析版本,DOM 可能是正確的選擇。 而 SAX 事件被觸發時,如果您以後需要它,則由您(開發人員)自己決定以 某種方式儲存它。如果您需要訪問不曾儲存的事件,則必須再次解析該檔案。 而 DOM 自動儲存所有的資料。
只需要 XML 原始檔的少量內容嗎?
如果您只需要 XML 原始檔的少量內容,那麼 SAX 可能是正確的選擇。SAX 不會為原始檔中的每個東西建立物件;您要確定什麼是重要的。使用 SAX, 您要檢查每個事件以瞭解它是否與您的需要有關,然後相應地處理它。更妙 的是,一旦找到您正在尋找的東西,您的程式碼就會丟擲一個異常來完全停止 SAX 解析器。
您正在一臺記憶體很少的機器上工作嗎?
若是的話,不管您可能考慮到的其它因素是什麼,SAX 是您的最佳選擇。
要知道還存在用於其它語言的 XML API;尤其是 Perl 和 Python 社群有極佳的 XML 工具。
相關文章
-
XML認證知識點:SAX Parser
讀取和操縱 XML(XML培訓 程式語言培訓 ) 檔案的標準方法是 DOM(文件物件模型)。遺憾的是,這種方法需要讀取整個檔案並將它儲存到樹結構中,因而效率不高、緩慢,並且會過度使用資源。一種替代方法是使用 Simple API for XM -
XML認證知識點:DOM Parser
DOM Document 是以層次結構組織起來的節點,或資訊片段的集合。這種層次結構允許開發者瀏覽樹來查詢特定資訊。通常,分析結構需要在完成任何工作之前裝入整個文件並且裝入層次結構。 基本的應用程式從建立基本的應用 -
XML認證教程:SAX Parser
SAX 是由 XML-DEV 郵件列表的成員開發的,Java 版本由 David Megginson 維護。他們的目的是提供一種更自然的方法來使用 XML, 這種方法不會涉及到使用 DOM 的那種開銷。 什麼是 SAX讀取和操縱 XML 檔案的標準方法是 D -
XML認證教程:DOM Parser
DOM= Document Object Model,文件物件模型,DOM可以以一種獨立於平臺和語言的方式訪問和修改一個文件的內容和結構。 DOM基礎在開始使用 DOM 之前,瞭解它實際表示什麼是值得的。DOM Document 是以層次結構組織起來的節 -
XML認證知識點:XML Schema
XML(XML培訓 程式語言培訓 ) Schema如同DTD一樣是負責定義和描述XML文件的結構和內容模式。它可以定義XML文件中存在哪些元素和元素之間的關係,並且可以定義元素和屬性的資料型別。 什麼是XML SchemaXML Schema如同 -
MS SQL Server Management Studio Express安裝圖文具體步驟
Microsoft sql server Management Studio Express (SSMSE) 是一種免費、易用的圖形管理工具,用於管理 SQL Server 2005 Express Edition 和具有高階服務的 SQL Server 2005 Express Edition。SSMSE 還可以管理任何版本 -
雅思口語範文:My Experience as an English Learner
I began leaing English in the middle school. Soon I became very interested in it. English exams were very easy to me and I always got the highest marks in my class. Then I succeeded in the College Ent -
SUN認證考試知識點:java servlet生命週期
Servlet是使用 Java Servlet應用程式設計介面及相關類和方法的Java程式。它在Web伺服器上或應用伺服器上執行並擴充套件了該伺服器的能力。Java Servlet對於Web伺服器就好像Java Applet對於Web瀏覽器。Applet裝入Web瀏覽 -
ACCA P3考試必考知識點:Linear regression
為幫助大家更好複習ACCA考試,今天yjbys小編為大家帶來ACCA P3考試Linear regression裡面的知識點,由於全都是英文,大家不認識的可以去查閱相關字典工具,方便理解!Least squares linear regression is a method of fitting -
Adobe認證Premiere Pro CS4考試大綱
Adobe Premiere Pro CS4是一款常用的視訊編輯軟體,是一款編輯畫面質量比較好的軟體,有較好的相容性,且可以與Adobe公司推出的其他軟體相互協作。這款軟體廣泛應用於廣告製作和電視節目製作中。考試數量:考試試題共40道考