MSXML
微軟 XML 核心服務(MSXML)提供了一組服務的,使用戶會使用 JScript、VBScript 佮其他微軟的開發工具開發是因為 XML 就會當機應用程式。伊支持 XML 一垺零、DOM、SAX、XSLT 一垺零,並且提供了包括 XSD 和 XDR 在內的 XML schema、XMLHttpRequest、XPath、SOM() 等技術。
版本歷史
MSXML是無仝款的產品的合集。會當對這个枚舉逐个版本:
現行有效版本
- MSXML 六板零MSXML 六是上新版本。佮 MSXML 三做伙隨 Microsoft SQL Server 兩千空五、Visual Studio 兩千空五、. NET Framework 三-c零、Windows Vista、Windows XP Service Pack 三發行。支持六十四个本地環境。版本六會當代替版本四,但是袂當代替版本三。MSXML 六無支持 Windows 九 x。
- MSXML 三-c零對應於 msxml 三 . dll。MSXML 三-c零 SP 二隨 Windows XP、Internet Explorer 六鼻零佮 MDAC 二鋪七發行。Windows XP SP 兩包括 MSXML 三-c零 SP 五,做為 MDAC 二鋪八一的一部份。Internet Explorer 版本六交零、七鼗零、八○零使用 MSXML 三解析 XML 文檔。MSXML 三-c零 SP 七嘿 Windows 九十五支持的上懸版本。Windows XP SP 三包括 MSXML 三-c零 SP 九。Windows Vista 包含 MSXML 三-c零 SP 十。
過時版本
- MSXML 五曉空隨 Microsoft Office 兩千空三佮 Office 兩千空七發布。Microsoft 無發布五曉零的文檔,因為乎 MSXML 五干焦是 Office 兩千空三和兩千空七內部攏使用。Office 二千空一十無包含 MSXML 五曉空。
- MSXML 四配零隨獨立的、會當下載的 SDK 發布,袂當完全兼容版本三更零。只有三十二位版本。MSXML 四配零 SP 三是上懸的版本。並且二空一四年四月過期。
- MSXML 二孵六隨 Microsoft SQL Server 兩千佮 MDAC 二鋪六發布,對應於 msxml 二 . dll,最後版本為 KB 八十八分七千六百空六 .
- MSXML 二嬸五隨 Windows 兩千中的 Internet Explorer 五鋪零一佮 MDAC 二嬸五發布。對應於 msxml . dll
- MSXML 二孵空 a隨 Internet Explorer 五曉空發布
- MSXML 一垺零隨 Internet Explorer 四配空發布
DOM
MSXML 以 COM 承喙(Interface)的形式提供一套 XML 的分析器(parser), 對而實現矣 DOM。
捷用的接喙:
IXMLDOMDocument
IXMLDOMDocument 是 XML 文檔接口,是 DOM 樹頭結構的根結點。
IXMLDOMNode
IXMLDOMNode 是通用的節點接口,各種的類型節點接口攏對伊派生,包括講 IXMLDOMDocument。節點類型包括:
得著根節點的一種方法:
IXMLDOMNodeList
IXMLDOMNodeList 是節點列表的接口,表示一組兄弟仔(sibling)節點的列表。會當通過 index 對零開始遍歷列表。列表中的元素抑是動態的,會隨著 XML 文檔的改變更新。
IXMLDOMNamedNodeMap
IXMLDOMNamedNodeMap 是號名節點的無爽快集合的接喙。該接口捷用表示儉點的屬性集,並且是動態的。
IXMLDOMElement
IXMLDOMElement 是元素的接口,一般來表示一个儉點佮其他的屬性。
IXMLDOMAttribute
IXMLDOMAttribute 是儉點屬性的接口。
IXMLDOMText
IXMLDOMText 是節點的文本的接口。
IXMLDOMComment
IXMLDOMComment 是 XML 文檔的注釋的接口。
IXMLDOMParseError
IXMLDOMParseError 是 XML 分析時語法出錯的接口,包括了錯誤的詳細信息。
IXMLDOMImplementation
IXMLDOMCharacterData
IXMLDOMCharacterData 是字符數據的接口。嘛是一批因為字符的接口的基類。
IXMLDOMCDATASection
IXMLDOMCDATASection 是 CDATA 類型的文本的接口。
IXMLDOMDocumentFragment
IXMLDOMDocumentType
IXMLDOMProcessingInstruction
IXMLDOMNotation
IXMLDOMEntity
IXMLDOMEntityRefernce
各種智能指針
DOM 的各種接口一般攏有相應的智能指針接口,通常替接口名加上 Ptr。比如講 IXMLDOMDocument 的智能指針接口為 IXMLDOMDocumentPtr。
C + + 語言使用
需要佇源程序內底加入這途:
這予工程(Project)的編譯文件挾落去 msxml 六 . tlh 和 msxml 六 . tli 兩个文件,分別相當的喔 COM 接口的頭文件佮實現文件。「raw \ _ interfaces \ _ only」屬性予得生成的 msxml 六 . tlh 中,逐个結構當中干焦包含返回類型做 HRESULT 的接口函數,並且接口函數名省去矣 raw \ _ 前綴;若毋免該屬性,是恬恬仔認是佇咧逐个結構中聲明矣一套帶 raw \ _ 前綴的轉來 HRESULT 類型的接口函數以及無愛紮 raw \ _ 前綴的轉來各種 VARIANT \ _ 類型的 wrapper 接口函數。
嘛會當通過連接輸入庫文件 msxml 六 . lib 來使用。
做為 COM 庫,佇執行緒的頭佮結束的所在愛分別調用 COM 環境的初始化佮去初始化函數:CoInitialize、CoUninitialize。
MSXML 的各種資源攏囥佇咧 MSXML 二名空間(namespace)中。
Visual Basic 使用
首先咧 Visual Basic 的 Project 上拍開 Add Reference 對話框,佇咧 COM 標籤頁(tab)中,加添「Microsoft , v 六板零」的引用。也會當選擇四陽去或者是五國版本的引用。
然後,佇原始碼中輸入:
VBScript 使用
` ` ` Set objParser=CreateObject ( " Microsoft . XMLDOM " ) ` ` `
參考文獻
- MSDN : Microsoft XML Team Blog