*摘要
。DataSet和XML文档关系初探
。使用XmlDocument类
。XPath查询
。过滤DataSet和使用DataView
。使用XmlDataDocument
。使用XSL和XSLT转换

* XML和DataSet
。在ADO.NET组件中DataSet是其核心组件之一,它提供了独立于数据源的数据访问,为了实现这种平台互用性和可伸缩的数据访问,ADO.NET采用了

基于XML数据的传输格式,XML在这里充当了至关重要的脚色。
。当数据传输时,ADO.NET是将DataSet表述为XML,然后以XML格式传递给其他组件。

* DataSet和XML文件转换

* XmlDocument类
。位于System.Xml名称空间
。是XML文档的内存表示
。当一个XML文档被载入时,它作为XmlNode对象群组的一部分被载入到一树型描述中。每个XmlNode对象可以有多个子XmlNode对象,但是只能有一个

父节点

* XPath
。XPath(XML路径语言)是用来查询和定位XML文档里的元素以及文本的一种通用查询方法。
。许多人将XPath看作Internet的SQL语言。
。XPath语法使用称为表达式的模式。初始化时结果集中没有任何东西,利用XPath表达式使得出现在结果集里的节点形成特定的层次结构并符合一定

的条件。
。XPath上下文:是我们将要查询文档的文档树中一个特定的节点。可以认为是查询的一个起始点。

* XPath表达式
。由位置步组成。它由一个轴,一个节点测试和可选择的一系列谓词构成。通过使用反斜杠连接多个位置步形成位置路径,产生一组节点作为结果。
。/Books/book/title:要求元素Books的子元素book的所有子元素title.
。/Books/book[@Price<21.99]/title:返回Books根元素下book子元素中,所有Price属性值小于21.99的book的所有title子元素。
。位置步:表达式中由反斜杠分开的每个部分被称为一个位置步。
。轴:是与上下文节点相对的文档的一部分,它定义了一组与当前节点有特定层次关系的节点。
。节点测试:可以用来指示位置路径中一组合法节点的任何表达式。节点测试通过名字或类型筛选初始结果集。-Child::text():返回所有文本子节

点。
。谓词:true或false的一个表达式。

* 轴
。轴心包括:self,child,parent,descendent,ancestor,attribute,namespace,following,preceding
。chile::Customer:返回当前节点子元素中的所有Customer元素
。descendent::OrderItem:返回节点名为"OrderItem"的所有后代

* XPath表达式示例
。./Order将找到当前上下文中名为Order的所有元素
。/Order将找到文档树中根下所有为Order的元素
。//Order将在文档树的任何地方找到所有名为Order的元素,不管深度或层次结构
。child::book[attribute::publisher='张三']
。child::book[@publisher='张三']
。descendent::book[count(child::chapter)>5]:用count函数检索所有chapter大于5的后代book节点
。child::book[start-with(attribute::publisher,'张')]:使用start-with函数检索所有publisher属性以'张'开头的book子节点

* XPath缩略语法
。//代表后代轴
。@代表属性轴
。.代表自己
。..代表父节点

* DataSet过滤
。Select方法:通过一个过滤字符串来过滤表中的行
。DataView

* Select方法
。它返回一组符合查询中所指定标准的DataRow对象
。除了给出过滤表达式以外,还可以提供一个DataRowViewState,以便选择所有不仅符合给定标准而且还有指定版本(比如添加,源数据,删除)的行。

* DataView
。是一个给定DataTable的可绑定的定制视图。
。通过定制视图,我们可以控制视图允许用户看什么DataViewRowState
。也可以提供筛选表达式,控制哪些行对于视图来说是可以访问的。
。除了允许用户查看特定数据外,也可以通过视图修改原始表中的数据,只要修改符合视图的约束。

* 使用XmlDataDocument
。失真:
-当DataSet已有一个模式但不是从文档推出来的模式时,它将只载入模式定义的数据。如果修改DataSet然后保存到XML,则保存后的XML不会含有模式以外的属性。
-另外,字符,格式化字符和空格一它们可能是原始文档中所需要的或是有意义的一都不会在DataSet生成的文档中出现

* XmlDataDocumnet
。XmlDataDocument允许通过DataSet来存取,检索和操作结构化的XML数据。
。XmlDataDocument将保护正与DataSet结合的XML文档的保真度
。XmlDataDocument与DataSet同步工作,当一个对象有所改变时,该改变能被及时地通知给其他对象。

* 使用XSL和XSLT转换XML
。XSL:扩展样式表语言,可以通过它来把XML转换为其他的文本格式
。XSL转换包括发现或者选择一个模式匹配,通过使用XPath选择一个结果集,然后对结果集中的每一项,为这些匹配定义结果输出。
。XSL是一个功能强大的工具,可以把XML转换成任何你想要的格式。

转载于:https://www.cnblogs.com/iceberg2008/archive/2009/04/06/1430469.html

第二十七讲 DataSet和XML相关推荐

  1. 第二十七讲 微分方程组解的图像

    一,竞争模型(含参数的微分方程组): {x′=−x+byy′=cx−3y\left\{\begin{matrix}{x}'=-x+by \\ {y}'=cx-3y\end{matrix}\right. ...

  2. Scala入门到精通——第二十七节 Scala操纵XML

    本节主要内容 XML 字面量 XML内容提取 XML对象序列化及反序列化 XML文件读取与保存 XML模式匹配 1. XML 字面量 XML是一种非常重要的半结构化数据表示方式,目前大量的应用依赖于X ...

  3. 线性代数学习笔记——第二十七讲——向量的方向余弦

    1. 向量方向角的定义 2. 向量方向余弦的定义(方向角的余弦)及其性质 3. 方向余弦的应用示例1 3. 方向余弦的应用示例2

  4. Linux下sql_labs第七关,SQL注入之Sqli-labs系列第二十七关(过滤空格、注释符、union select)和第二十七A...

    开始挑战第二十七关(Trick with SELECT & UNION) 第二十七A关(Trick with SELECT & UNION) 0x1看看源代码 (1)与26关一样,这次 ...

  5. C#发现之旅第一讲 C#-XML开发

    C#发现之旅第一讲 C#-XML开发 袁永福 2008-5-15 系列课程说明     为了让大家更深入的了解和使用C#,我们将开始这一系列的主题为"C#发现之旅"的技术讲座.考虑 ...

  6. 【正点原子FPGA连载】第二十七章DS18B20数字温度传感器实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  7. 十七讲14常数项级数的敛散性

    高数十七讲 专题十四 常数项级数的敛散性 1.级数的概念 2.级数的性质 ①数乘 --看是否收敛 ②加减 --看是否收敛.收敛±发散=发散,发散±发散=不确定. ③在级数中去掉.加上或改变有限项--和 ...

  8. 【正点原子STM32连载】 第二十七章 RTC实时时钟实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1

    1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...

  9. 趣谈网络协议笔记-二(第十七讲)

    趣谈网络协议笔记-二(第十七讲) P2P协议:我下小电影,99%急死你 自勉 逃离舒适区! 正文 一. P2P协议 整个篇章讲的就是这两个协议之间的区别.P2P协议就是迅雷下载数据时所用的协议, 众所 ...

  10. 利用DataSet对Xml文件操作

    ----------------------------------------------- 将DataSet内容写入Xml文件 ---------------------------------- ...

最新文章

  1. java停车管理系统中期检查_java毕业设计_springboot框架的停车场收费管理系统
  2. 来自新手Banana Pi香蕉派初体验
  3. python工程师月薪多少-Python工程师的薪资到底有多高
  4. 解决selenium用cookies时候报错selenium.common.exceptions.InvalidArgumentException: Message: invalid argument
  5. I00040 计算1000以内的勾股数
  6. python官网下载哪个版本好玩_Python官网不同版本的下载
  7. Nature 机器智能综述:AI如何自动生成游戏
  8. SharePoint自动化系列——Solution auto-redeploy using Selenium(C#)
  9. mysql添加外键的时候报错_mysql处理添加外键时 error 150 问题
  10. .计算机自动关机或重启,电脑自动关机或者重启怎么处理
  11. SAP ABAP实用技巧介绍系列之ABAP取中文字符串的字节长度
  12. python 函数、面向对象
  13. wince6.0添加组件_WINCE6.0添加对viewrs(PDF,Word,Execel和PowerPoint)支持
  14. 前端工程师找工作,你需要准备什么?
  15. 分享9个加快houdini渲染的技巧,快来学习一下
  16. 把菜单栏变成万能工具箱,让你的 Mac 更酷炫
  17. 多宽带联网(一) OpenWrt中使用Macvlan实现单线多拨上网
  18. SSH 使用及-L -R -D简介
  19. 全民一起玩Python提高篇第十二课:面向对象基本原理与语法(三)
  20. Linux V4L2框架的视频采集

热门文章

  1. multiple多图选择,借助FormData通过ajax实现上传
  2. 高度可定制化 IM聊天界面设计
  3. Gradle基础介绍
  4. BZOJ2199[Usaco2011 Jan] 奶牛议会
  5. vue学习笔记-6-样式绑定
  6. java web gradle_java web使用gradle配置详情
  7. sublime运行python_sublime交互执行python文件方法
  8. python怎么用matplotlib_python-无法在我的程序中使用matplotlib函数
  9. python3file函数_Python3 File(文件) 方法
  10. Windows10使用命令行打开3389_如何在Windows 10上安装Python 3和设置本地编程环境