DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML基礎 >> 利用MSXML解析XML文本
利用MSXML解析XML文本
編輯:XML基礎     

 

一、引言

 

  當前Web上流行的腳本語言是以HTML為主的語言結構,HTML是一種標記語言,而不是一種編程語言,主要的標記是針對顯示,而不是針對文檔內容本身結構的描述的。也就是說,機器本身是不能夠解析它的內容的,所以就出現了XML語言。

  XML(eXtensibleMarkup Language)語言是SGML語言的子集,它保留了SGML主要的使用功能,同時大大縮減了SGML的復雜性。XML語言系統建立的目的就是使它不僅能夠表示文檔的內容,而且可以表示文檔的結構,這樣在同時能夠被人類理解的同時,也能夠被機器所理解。XML要求遵循一定的嚴格的標准。XML分析程序比HTML浏覽器更加要挑剔語法和結構,XML要求正在創建的網頁正確地使用語法和結構,而不是像HTML一樣,通過浏覽器推測文檔中應該是什麼東西來實現HTML的顯示,XML使得分析程序不論在性能還是穩定性方面都更容易實現。XML文檔每次的分析結果都是一致的,不像HTML,不同的浏覽器可能對同一個HTML作出不同的分析和顯示。同時因為分析程序不需要花時間重建不完整的文檔,所以它們能比同類HTML能更有效地執行其任務。它們能全力以赴地根據已經包含在文檔中的那個樹結構建造出相應的樹來,而不用在信息流中的混合結構的基礎上進行顯示。

  XML標准是對數據的處理應用,而不是只針對Web網頁的。任何類型的應用都可以在分析程序的上面進行建造,浏覽器只是XML的一個小的組成部分。當然,浏覽仍舊極其重要,因為它為XML工作人員提供用於閱讀信息的友好工具。但對更大的項目來說它就不過是一個顯示窗口。因為XML具有嚴格的語法結構,所以我們甚至可以用XML來定義一個應用層的通訊協議,比如互聯網開放貿易協議(Internet Open Trading Protocol)就是用XML來定義的。從某種意義上說,以前我們用BNF范式定義的一些協議和格式從原則上說都可以用XML來定義。實際上,如果我們有足夠的耐心,我們完全可以用XML來定義一個C++語言的規范。

  當然,XML允許大量HTML樣式的形式自由地開發,但是它對規則的要求更加嚴格。XML主要有三個要素:DTD(Document Type Declaration-文檔類型聲明)或XML Schema(XML大綱)、XSL(eXtensible Stylesheet Language-可擴展樣式語言)和XLink(eXtensibleLink Language-可擴展鏈接語言)。DTD和XML大綱規定了XML文件的邏輯結構,定義了XML文件中的元素、元素的屬性以及元素和元素的屬性之間的關系;Namespace(名域)實現統一的XML文檔數據表示以及數據的相互集成;XSL是用於規定XML文檔呈現樣式的語言,它使得數據與其表現形式相互獨立,比如XSL能使Web浏覽器改變文檔的表示法,例如數據的顯示順序的變化,不需要再與服務器進行通訊。通過改變樣式表,同一個文檔可以顯示得更大,或者經過折疊只顯示外面的一層,或者可以變為打印的格式。而XLink 將進一步擴展目前Web上已有的簡單鏈接。

 

二、實現XML解析的說明

 

  從理論上說,根據XML的格式定義,我們可以自己編寫一個XML的語法分析器,但是實際上微軟已經給我們提供了一個XML語法解析器,如果你安裝了IE5.0以上版本的話,實際上你就已經安裝了XML語法解析器。可以從微軟站點(www.microsoft.com)下載最新的MSXML的SDK和Parser文件。它是一個叫做MSXML.DLL的動態鏈接庫,最新版本為msxml3,實際上它是一個COM對象庫,裡面封裝了所有進行XML解析所需要的所有必要的對象。因為COM是一種以二進制格式出現的和語言無關的可重用對象。所以你可以用任何語言(比如VB,VC,DELPHI,C++ Builder甚至是腳本語言等等)對它進行調用,在你的應用中實現對XML文檔的解析。下面的關於XML文檔對象模型的介紹是基於微軟最新的msxml3為基礎進行的。

 

三、XML文檔對象(XML DOM)模型分析

 

  XML DOM對象提供了一個標准的方法來操作存儲在XML文檔中的信息,DOM應用編程接口(API)用來作為應用程序和XML文檔之間的橋梁。DOM可以認為是一個標准的結構體系用來連接文檔和應用程序(也可以是劇本語言)。     MSXML解析器允許你裝載和創建一個文檔,收集文檔的錯誤信息,得到和操作文檔中的所有的信息和結構,並把文檔保存在一個XML文件中。DOM提供給用戶一個接口來裝載、到達和操作並序列化XML文檔。DOM提供了對存儲在內存中的XML文檔的一個完全的表示,提供了可以隨機訪問整個文檔的方法。DOM允許應用程序根據MSXML解析器提供的邏輯結構來操作XML文檔中的信息。

  利用MSXML所提供的接口來操作XML。實際上MSXML解析器根據XML文檔生成一個DOM樹結構,它能夠讀XML文檔並根據XML文檔內容創建一個節點的邏輯結構,文檔本身被認為是一個包含了所有其他節點的節點。DOM使用戶能夠把文檔看成是一個有結構的信息樹,而不是簡單的文本流。這樣即使不知道XML的語義細節,應用程序或者是腳本也能夠方便地操作該結構。DOM包含兩個關鍵的抽象:一個樹狀的層次、另一個是用來表示文檔內容和結構的節點集合。樹狀層次包括了所有這些節點,節點本身也可以包含其他的節點。這樣的好處是對於開發人員來說,他可以通過這個層次結構來找到並修改相應的某一個節點的信息。DOM把節點看成是一個通常的對象,這樣就有可能創建一個劇本來裝載一個文檔,然後遍歷所有的節點,顯示感興趣的節點的信息。注意節點可以有很多中具體的類型,比如元素、屬性和文本都可以認為是一個節點。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved