第二十七讲 DataSet和XML

*摘要
。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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值