1、XML DOM、XMLDocument

1、XML DOM概述

XML 文檔大小寫敏感、屬性用引號括起來,每個標記都要閉合。api

DOM是XML文檔的內存中樹狀的表示形式。架構

繼承關係圖:spa

XmlNode;//XML節點
......XmlDocument;//XML文檔
............XmlDataDocument;//與Dataset相關的文檔
......XmlDocumentFragment;//文檔片斷
......XmlLinkedNode;//鏈接節點(抽象類)
............XmlDeclaration;//XML聲明:<?xml version='1.0' ..?>
............XmlDocumentType;//文檔類型
............XmlElement;//元素
............XmlEntityReference;//實體引用節點
............XmlProcessingInstruction;//處理指令
............XmlCharacterData;//字符數據(抽象類)
..................XmlCDataSection;//CDATA節
..................XmlComment;//註釋
..................XmlSignificantWhitespace;//有效空白
..................XmlWhitespace;//空白
..................XmlText;//元素或屬性的文本內容
......XmlAttribute;//屬性
......XmlEntity;//實體聲明<!Entity..>
......XmlNotation;//表示法聲明<!Notation...>

2、XMl節點:XmlNode

一、屬性:

  • Child​Nodes : 獲取節點的全部子節點。
  • First​Child : 獲取節點的第一個子級。
  • Has​Child​Nodes  :獲取一個值,該值指示此節點是否有任何子節點。
  • Last​Child : 獲取節點的最後一個子級。
  • Parent​Node : 獲取該節點的父級(針對能夠擁有父級的節點)。
  • Next​Sibling : 獲取緊接在該節點以後的節點。
  • Previous​Sibling : 獲取緊接在該節點以前的節點。
  • Inner​Text : 獲取或設置節點及其全部子節點的串連值。
  • Inner​Xml : 獲取或設置僅表示該節點的子節點的標記。
  • Outer​Xml : 獲取包含此節點及其全部子節點的標記。
  • Node​Type : 當在派生類中被重寫時,獲取當前節點的類型。
  • Value : 獲取或設置節點的值。
  • Attributes : 獲取一個 XmlAttributeCollection,它包含該節點的特性。
  • Owner​Document : 獲取此節點所屬的 XmlDocument。

二、方法:

  • Append​Child(Xml​Node) :    將指定的節點添加到該節點的子節點列表的末尾。
  • Prepend​Child(Xml​Node)  :   將指定的節點添加到該節點的子節點列表的開頭。
  • Insert​After(Xml​Node, Xml​Node)  :   將指定的節點緊接着插入指定的引用節點以後。
  • Insert​Before(Xml​Node, Xml​Node)  :   將指定的節點緊接着插入指定的引用節點以前。
  • Remove​All() :    移除當前節點的全部子節點和/或屬性。
  • Remove​Child(Xml​Node) :    移除指定的子節點。
  • Replace​Child(Xml​Node, Xml​Node)  :   用 oldChild 節點替換子節點 newChild。
  • Select​Nodes(String) :    選擇匹配 XPath 表達式的節點列表。
  • Select​Single​Node(String) :    選擇匹配 XPath 表達式的第一個 XmlNode。
  • Write​Content​To(Xml​Writer)  :   當在派生類中被重寫時,該節點的全部子節點會保存到指定的 XmlWriter 中。
  • Write​To(Xml​Writer)  :   當在派生類中被重寫時,將當前節點保存到指定的 XmlWriter 中。
  • Clone() :    建立此節點的副本。
  • Clone​Node(Boolean)  :   當在派生類中被重寫時,建立該節點的副本
  • Create​Navigator() :    建立 XPathNavigator 以瀏覽此對象。

3、XML文檔:XMLDocument

一、屬性:

  • Document​Element : 獲取文檔的根 XmlElement。
  • Document​Type : 獲取包含 DOCTYPE 聲明的節點。
  • Preserve​Whitespace : 獲取或設置一個值,該值指示是否在元素內容中保留空白區域。
  • Schemas : 獲取或設置與此 XmlDocument 關聯的 XmlSchemaSet 對象。
  • Xml​Resolver : 設置 XmlResolver 以用於解析外部資源。

二、方法:

  • Get​Element​ById(String)  :   獲取具備指定 ID 的 XmlElement。
  • Get​Elements​ByTag​Name(String)  :   返回一個 XmlNodeList,它包含與指定 Name 匹配的全部子代元素的列表。
  • Import​Node(Xml​Node, Boolean)   :  將節點從另外一個文檔導入到當前文檔。Load(Stream)    從指定的流加載 XML 文檔。
  • Load(String) :    從指定的 URL 加載 XML 文檔。。
  • Load​Xml(String)  :   從指定的字符串加載 XML 文檔。
  • Save(String) :    將 XML 文檔保存到指定的文件。 若是存在指定文件,則此方法會覆蓋它。
  • Validate(Validation​Event​Handler)  :   驗證 XmlDocument 是否是 Schemas 屬性中包含的 XML 架構定義語言(XSD) 架構。
  • Clone​Node(Boolean) :    建立此節點的副本。
  • Read​Node(Xml​Reader)  :   根據 XmlReader 中的信息建立一個 XmlNode 對象。 讀取器必須定位在節點或屬性上。
  • Write​Content​To(Xml​Writer)  :   將 XmlDocument 節點的全部子級保存到指定的 XmlWriter 中。
  • Write​To(Xml​Writer) :    將 XmlDocument 節點保存到指定的 XmlWriter。
  • Create​****(String)  :   建立具備指定 Name 的 Xml***。
    • Create​Navigator()  :   建立一個用於導航此文檔的新 XPathNavigator 對象。

    三、事件:

    • Node​Changing、Node​Changed 當屬於該文檔的節點的 Value 將、已被更改時發生。
    • Node​Inserting、Node​Inserted 將屬於該文檔的節點將、已插入另外一個節點時發生。
    • Node​Removing、Node​Removed 當屬於該文檔的節點將、已從其父級中移除時發生。

    4、XML元素:XmlElement

    一、屬性:

    • Attributes :   獲取包含該節點特性列表的 XmlAttributeCollection。
    • Has​Attributes  :   獲取一個 boolean 值,該值指示當前節點是否有任何屬性。
    • Is​Empty :    獲取或設置元素的標記格式。
    • Schema​Info :    獲取做爲架構驗證的結果分配給此節點的後架構驗證信息集。

    二、方法:

    • Get​Attribute(String)  :   返回具備指定名稱的特性的值。
    • Get​Attribute​Node(String) :    返回具備指定名稱的 XmlAttribute。
    • Has​Attribute(String) :    肯定當前節點是否具備帶有指定名稱的特性。
    • Get​Elements​ByTag​Name(String)  :   返回一個 XmlNodeList,它包含與指定 Name 匹配的全部子代元素的列表。
    • Remove​All() :    移除當前節點的全部指定特性和子級。 不移除默認特性。
    • Remove​All​Attributes()  :   從元素移除全部指定的特性。 不移除默認特性。
    • Remove​Attribute(String) :    按名稱移除特性。
    • Remove​Attribute​At(Int32) :    從元素中移除具備指定索引的特性節點。 (若是移除的特性有一個默認值,則當即予以替換)。
    • Remove​Attribute​Node(String, String) :    移除由本地名稱和命名空間 URI 指定的 XmlAttribute。 (若是移除的特性有一個默認值,則當即予以替換)
    • Clone​Node(Boolean) :    建立此節點的副本。
    • Write​Content​To(Xml​Writer)  :   將該節點的全部子項保存到指定的 XmlWriter 中。
    • Write​To(Xml​Writer) :    將當前節點保存到指定的 XmlWriter 中。

    5、實例

    查找節點:SelectNodescode

    string str = @"<JZD_Message xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns=""https://api.xiaoheer.com/"" >   <ErrorRes>     <Err_code>200</Err_code>     <Err_content>認證信息匹配</Err_content>   </ErrorRes> </JZD_Message>"; var xd = new System.Xml.XmlDocument(); xd.LoadXml(str);//xml加載xml字符串
     XmlNamespaceManager nsManager = new XmlNamespaceManager(xd.NameTable);//建立一個命名空間管理器
     nsManager.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema");//添加字符串時,命名空間管理器將會原子化這些字符串。
    nsManager.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance"); nsManager.AddNamespace("amon", "https://api.xiaoheer.com/"); var rowNoteList = xd.SelectNodes("//amon:ErrorRes", nsManager);//查找節點
    Console.WriteLine(rowNoteList[0]);

    返回:xml

    <ErrorRes xmlns="https://api.xiaoheer.com/">
                  <Err_code>200</Err_code>
                  <Err_content>認證信息匹配</Err_content>
    </ErrorRes>
    相關文章
    相關標籤/搜索