• DataSet 与 xml


    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

  • 相关阅读:
    CC.NET+SVN+Msbuild
    react服务端/客户端,同构代码心得
    为什么国人很难出高质量开源
    FKP,一套全栈框架,基于react、webpack、koa1、babel
    嵌入式工程师的发展路线
    浅谈学习单片机的一些职业规划
    关于嵌入式新手面试的一些小技巧
    几点心得送给学习嵌入式的新手
    新手学习嵌入式需要掌握的几点知识点
    从迷茫到转机,一个嵌入式工程师的经历
  • 原文地址:https://www.cnblogs.com/refactor/p/2531331.html
Copyright © 2020-2023  润新知