DataSet 與 xml

來源:互聯網
上載者:User

1.將DataSet 寫入檔案 將DataSet 寫入檔案
  • DataSet.WriteXml()
  • XmlWriteMode
    – WriteSchema:以XML 資料形式寫入DataSet 的當前內容,以關係結構作為內聯XSD 架構。
      如果DataSet 只有架構而無資料,那麼唯寫入內聯架構,如果DataSet 沒有當前架構則不寫入任何內容。
    – IgnoreSchema :以XML 資料形式寫入DataSet 的當前內容,不帶架構。如果無資料載入到DataSet 中,則不寫入任何內容。
    – DiffGram:作為DiffGram寫入整個DataSet,包括原始值和當前值。若要產生只包含已更改的值的DiffGram,請調用GetChanges,
      然後在返回的DataSet 上作為DiffGram調用WriteXml。
2.從XML檔案讀取到DataSet
  • DataSet.ReadXml()
  • XmlReadMode
    –Auto:預設值。
    – ReadSchema:讀取任何內聯架構並載入資料。如果DataSet已經包含架構則可以將新表添加到架構中,但是如果內聯架構中的
      任何錶在DataSet中已經存在,則會引發異常。
    – IgnoreSchema :忽略任何內聯架構並將資料讀入現有的DataSet。如果任何資料與現有的架構不匹配,就會將這些資料丟棄
      (包括為DataSet定義的不同命名空間中的資料)。如果資料是DiffGram,IgnoreSchema 與DiffGram具有相同的功能。
    – DiffGram:讀取DiffGram,將DiffGram中的更改應用到DataSet。語義與Merge操作的語義相同。與Merge 操作一樣,保留
      RowState值向ReadXml的DiffGram輸入只能使用WriteXml中的 RowState值。向ReadXml的DiffGram輸入只能使用WriteXml中的
      DiffGram輸出來獲得。
    – InferSchema :忽略任何內聯架構,從資料推斷出架構並載入資料。如果DataSet已經包含架構,就通過添加新表或者向現有的表添加列,
      來擴充當前架構。如果推斷的表已經存在但是具有不同的命名空間,或者如果推斷的列中有一些與現有的列衝突,則會引發異常。
    – Fragment:針對SQLServer 的執行個體讀取XML片段(例如,通過執行FORXML查詢產生的XML片段)。當XmlReadMode設定為
      Fragment時,預設命名空間作為內聯架構來讀取。
    – InferTypedSchema :忽略任何內聯架構,從資料推斷出強型別架構並載入資料,如果無法從資料推斷出類型,則會將其解釋為字串資料。
      如果DataSet已經包含架構,就通過添加新表或者通過向現有的表中添加列來擴充當前架構。如果推斷的表已經存在
      但是具有不同的命名空間或者如果推斷的列中有一些與現有的列 是具有不同的命名空間,
      或者如果推斷的列中有一些與現有的列衝突,則會引發異常。
3.擷取XML結果
  • DataSet.GetXml()
  • 調用此方法與調用WriteXml並將XmlWriteMode 設定為IgnoreSchema 相同。
  • GetXml 以字串的形式返回XML,因此,與將XML 寫入檔案的WriteXml相比,它需要更多的系統開銷。
  • 如果使用架構推理產生DataSet 並使用XML 或Web 服務對它進行序列化,則列的排序方式可能會改變。
4.SQL Server 中的FOR XML語句
  • 擴充SELECT 文法
  • 返回XML,代替了行和列 返回XML,代替了行和列
  • 可配置用於返回屬性,元素和架構
  • 使用XML用戶端應用程式會受益
5.RAW模式查詢

6.AUTO 模式查詢
  • 資料實體的XML表示
  • 資料實體的XML表示
  • 基於串連優先的嵌套資料
  • 可以使用例如ELEMENTS和ROOT 的選項

7.EXPLICIT 模式查詢


8.PATH 模式查詢
  • 使用XPath 來指定XML格式 • 使用XPath 來指定XML 格式
  • 允許嵌套資料的建立
  • 比使用EXPLICIT  模式更加容易

9.顯示嵌套XML的文法

10.詳解.Net XPath 處理引擎
  • DOM
    -重量級讀寫
    -隨機訪問
    -易於訪問複雜物件模型
  • XmlReader
    -輕量級訪問
    -唯讀
    -只向前
    -訪問快速
a.建立XPathNavigator 對象
  • 下面的類都實現了System.Xml.XPath命名空間的IXPathNavigable 介面,都可以使用方法返回對象CreateNavigator 方法返回XPathNavigator 對象
    – XPathDocument
    – XmlDocument
    – XmlNode
  • 使用XPathNavigator 對象可以選擇、計算、瀏覽和(在有些情況下)編輯基礎XML資料。
  • 選擇節點
    – Select ()
    – SelectSingleNode()
  • 計算XPath 運算式
    – Evaluate()
  • 匹配節點與XPath 運算式
     – Matches()
b.訪問XML 資料
  • OuterXml屬性
    – 用於擷取整個XML 文檔的標記或只擷取單個節點及其子節點的標記。
  • ReadSubtree () 方法
    – 用於將XML 文檔的全部內容或只是單個節點及其子節點流處理到XmlReader 對象。
c.編輯XML 資料
  • 插入節點
    – InsertAfter、InsertBefore 、InsertElementAfter 、InsertElementBefore
    – AppendChild 、PrependChild、AppendChildElement、PrependChildElement
    – CreateAttribute 、CreateAttributes
  • 修改節點
    –SetValue 、SetTypedValue
  • 刪除節點
    – DeleteSelf

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.