MSXML應用總結 概念篇

2021-07-15 04:52:04 字數 2492 閱讀 6551

目前共有四種msxml版本,分別為msxml3、msxml4、msxml5和msxml6。由於在微軟的windows系統中,msxml主要是用來支援瀏覽器和office的,因此這些版本多與不同瀏覽器版本及office版本相關。微軟推出ie6時帶的是msxml3,因此一般在xp系統上是支援msxml3的,msxml3也成為應用最廣泛的乙個版本。msxml5主要用來支援microsoft office;而msxml4很快就被更新版本的msxml6替代了,微軟推薦首選應用最新的msxml6,其次應用msxml3。

要學習msxml首先要了解xml。xml是一種被設計用於網路環境或跨平台環境資料儲存和交換的標記性語言,達到資料儲存分析一致性的目的。xml的結構形式和大家熟悉的html類似,但兩者的用途沒有關聯,最大的區別在於xml用來儲存資料,並允許使用者定義自己的元素。xml內容靈活的可擴充套件性以及簡單易用的結構設計,使它發展非常迅速,目前已是各種應用環境下的程式之間進行資料傳輸和交換的最流行技術,另外在資訊儲存和描述領域,xml也逐漸成為應用標準。

<?xml version='1.0' encoding='gb2312'?>

type="text">文字item>

type="cdata">

item>

type="sub">

子節點subitem>

item>

root>

第1行為xml宣告,定義xml使用的版本和編碼。如果xml中的編碼方式不是utf-8或utf-16,則必須宣告編碼方式,否則有可能解析失敗。關於xml編碼的問題下面會詳細介紹。

第2行是注釋,形式跟html是一樣的。

第3行的root為根元素(文件元素),其他所有元素都包含在該元素的開始和結束標籤之間。xml檔案必須要有乙個根元素,其他元素都出現在根元素內部。

第4行到第10行為根元素的子節點元素,這些元素是可以重名的。乙個元素可以擁有屬性、文字和子元素。如第4行的item元素擁有「type」屬性,item標籤之間的「文字」就是該元素的文字,第8行的item則擁有子元素「subitem」。

第6行的< ![cdata[ ]]>段是乙個特殊的語法,被稱為cdata段。表示其中的字元無需解析,例如一些類似』<』、』/』、』>』的特殊字元,這樣可以防止xml的結構被破壞。

另外需要注意的一些事項:

1、xml的標籤是大小寫敏感的;

2、一些轉義字元在表達非轉義的情形下,應使用實體引用,如將』<』變為』<』,將』>』變為』>』,將』&』變為』&』,將」』變為』&apos』,將』」』變為』"』;

3、xml中應盡量少使用屬性,而多使用子元素。

計算機上的字符集問題是乙個讓所有開發者頭疼的問題,由於歷史原因以及具體應用的不同需求,產生了很多種字元編碼集,常見的大概可以分為兩種:單位元組編碼和多位元組編碼,前者代表為ascii,後者代表為unicode。但是除了這兩者之外,還有很多字符集,而且單unicode就提供了3種編碼方法:utf-8,utf-16和utf-32。關於字符集的具體知識,大家可以自己去查閱一些資料。

xml對字元編碼的規定是:如果xml指定編碼格式,則按照指定格式進行處理,當然此時必須保證文件儲存的字元編碼格式與指定的統一,或者解析器能夠處理這種編碼格式,如果出現錯誤,解析器會給出提示資訊。當xml沒有指定編碼格式時,採用預設編碼格式utf-8,如果此時文件編碼格式不是utf-8,那麼解析就會出錯。

dom是msxml的一種對xml文件進行處理的標準模型,將xml文件全部載入到記憶體中形成乙個樹結構,在此基礎上將xml當作乙個物件進行操作。dom提供了一系列的api並為xml結構中的各種型別元素定義了對應的物件介面。利用這些介面,可以對xml文件進行建立、遍歷,對文件內容進行新增、刪除、修改等動態操作。

看名字可以知道sax是對xml操作的乙個api集合,為什麼這個集合」******」呢?其實是相對於dom來說的。

上面已經介紹,dom模型每次都會將整個xml文件裝載到記憶體當中維護乙個樹結構,可想而知,當xml文件比較複雜或者體積比較大的時候,維護起來肯定會影響到效率。因此,當開發者比較重視效率時,應用sax可能是乙個好的選擇。

sax最大的特點就是事件驅動。裝載xml檔案時,sax遍歷文件並產生諸如開始和結束解析元素之類的事件,通知外部應用進行處理。所有的處理都在一次遍歷中完成,因此sax處理xml文件效率很高。另外針對大型的文件,sax可以每次只將一部分裝入記憶體,這樣無論在空間效率和時間效率上都能得到有效提高。

當然sax的應用範圍是會受到一些限制,而且外部的處理也非常瑣碎,總之與dom應該是很好的互補。

xpath是一種能夠在xml文件中尋找資訊的語言,它通過xml文件中的元素和屬性來進行導航,形式非常類似我們平時用的路徑表示式。

xpath內建了很多函式可以幫助實現導航功能,通過指定路徑表示式來選擇xml文件中的節點或節點集合。在xpath中有七種節點:元素、屬性、文字、命名空間、處理說明、注釋和根節點。具體的路徑表示式規則大家可以參考相關資料。

基本的概念就這些了,希望對大家了解msxml有所幫助。

XML解析之 MSXML應用總結 概念篇

一 msxml版本說明 目前共有四種msxml版本,分別為msxml3 msxml4 msxml5和msxml6。由於在微軟的windows系統中,msxml主要是用來支援瀏覽器和office的,因此這些版本多與不同瀏覽器版本及office版本相關。微軟推出ie6時帶的是msxml3,因此一般在xp...

HDFS篇 HDFS相關概念總結

簡介 儲存模型為 位元組,以檔案切割成塊,單一檔案大小一致,檔案與檔案間可以不一致。其可以設定副本數,副本數不可超過節點數量。只支援一次寫入多次讀取,可追加資料。架構模型 namenode節點儲存檔案的元資料 單節點 datanode節點儲存檔案block資料 多節點 datanode與nameno...

log4j 應用 概念篇

log4j.properties配置檔案講解如下 log4j中有五級logger fatal 0 error 3 warn 4 info 6 debug 7 配置根logger,其語法為 log4j.rootlogger info,a1 r 這一句設定以為著所有的log都輸出 如果為log4j.ro...