DOM的關鍵在於它允許直接更新內存中的樹型結構,而不必重定向到其他輸出,因此,添加、更新或刪除結構中信息的操作效率更高。而作為程序員的我們重要的是要了解DOM所提供的編程接口以實現對XML文檔進行操作,事實上,.NET Framework定義了一組類用於反映DOM的體系結構,下面來看一下.Net DOM的繼承結構:
在上圖中所有弧角矩形中所包含的類描述了所有可能在XML文檔中出現的節點類型,而操作XML文檔不外乎是操作其中的節點,這些類又都是從XmlNode類派生而來,所以我們今天的主題是討論XmlNode類和它的子類XMLDocument,下面對這些類做簡單的介紹:
XMLNode類:
該類是DOM中所有其他節點的抽象基類,它定義所有在更低級的類中繼承或重寫的成員。它表示XML文檔中的單一節點,它提供了用於導航DOM樹型結構的基本方法和屬性,使用XMLNodeType枚舉器可以枚舉其下的所有節點類型。以下介紹該類的部分屬性和方法:
屬性:
[C#]
public virtual bool HasChildNodes {get;} 獲取一個值,該值指示當前節點是否有任何子節點
public virtual XMLNodeList ChildNodes {get;} 獲取當前節點的所有子節點
public virtual XMLNode FirstChild {get;} 獲取當前節點的第一個子級
public virtual XMLNode LastChild {get;} 獲取當前節點的最後一個子級
public virtual XMLNode ParentNode {get;} 獲取當前節點的父級
public virtual XMLNode NextSibling {get;} 獲取當前節點的下一個兄弟節點
public virtual XMLNode PreviousSibling {get;} 獲取當前節點的上一個兄弟節點
public virtual string InnerText {get; set;} 獲取或設置當前節點及其所有子節點的文本內容的串聯值
public virtual string InnerXML {get; set;} 獲取或設置僅代表當前節點的子節點的標記
public virtual string OuterXML {get;} 獲取表示當前節點及其所有子節點的標記
方法:
public XMLNodeList SelectNodes(string); 選擇文檔中匹配 XPath 表達式的節點列表
public XmlNode SelectSingleNode(string); 選擇文檔中匹配 XPath 表達式的第一個 XMLNode
public virtual XmlNode AppendChild(XMLNode newChild) 將指定的節點添加到該節點的子節點列表的末尾
public virtual XmlNode PrependChild(XMLNode newChild) 將指定的節點添加到該節點的子節點列表的開頭
public virtual XmlNode RemoveChild(XMLNode oldChild) 移除指定的子節點
public virtual XmlNode ReplaceChild(XmlNode newChild,XMLNode oldChild) 用 newChild 節點替換子節點 oldChild