您的位置:软件 > 开发者网络 > 微软开发专栏 > Visual Studio.net专栏 > VB.net > 正文
VB和VB.NET中的XML操作
[文章信息]
作者:洪万福
时间:2003-08-20
出处:微软社区
责任编辑:方舟
[文章导读]
本文为计划将应用程序更新到VB.NET的VB开发用户提供一些关于XML的建议
advertisement
热点推荐
· 天极网软件频道改版调查
· 在ASP.NET程序中创建唯一序号
· 用JVM工具接口创建调试和分析代理
· Win 2000如何安装配置防火墙
· 防范Windows消息钩子的侵入
[正文]

上一页  1 2 3 4 5  下一页

  Visual Basic.NET的出现大大改变了这个状况,Visual Basic.NET提供了使用XML、XSL以及其他XML工具的完整工具,使用户很轻松就能实现XML的应用,甚至,在不用编写代码的情况下操作XML。

  ADO.NET是Microsoft新推出的.NET框架中用于数据访问的组件,其最大的优点就是使用XML作为传送数据的标准,只要有一个XML文本,就可以读入ADO.NET的组件中,然后ADO.NET再以XML格式传给数据库或者其他组件。

  可以使用DataSet对象的ReadXML方法将一个XML文件读入到DataSet中,这是一个重载的方法,有几种语法格式,经常用到的如下所示:

ReadXML(FileName)

  其中,FileName为XML文档的名字,现在将前面创建的XML文本“Personal.xml”读入到DataSet中。新建一个项目,在窗体上创建一个Button和一个DataGrid控件,双击Button1输入以下代码:

Dim ds As New DataSet()

'读入XML文档
ds.ReadXml("personal.xml")
Dim tb As DataTable
Dim dv As DataView
tb = ds.Tables(0)
dv = New DataView(tb)
Me.DataGrid1.DataSource = dv

  显示结果如图:



  怎么样?和刚才比起来,代码量是不是少了很多,很容易就实现了XML文件的读取呢?

  .NET框架提供了操作XML文档和数据的一组完整的类。XmlReader和XmlWriter对象以及这两个对象的派生类提供了读取XML和可选验证XML的能力。XmlDocument和XMLSchema对象及其相关类代表了XML本身,而XslTransform和XMPathNavigator类分别支持XSL转换(XSLT)和应XML路径语言(XPath)查询。

  除了提供操作XML数据的外,XML标准还是.NET框 架中数据转换和序列化的基础。多数时候这些后台进行,不过我们已经看到ADO.NET类型化数据集是使用XML架构表示的。

  另外,ADO.NET数据集类对读写XML数据和架构提供直接支持,而且XmlDataDocument提供同步XML数据和关系ADO.NET数据集的能力,这样就可以用XML和关系工具对数据的单个集合进行操作。

  .NET框架公开了一个可用来直接对XML数据进行操作的类集。不过,如果需要使用关系操作(如排序、过滤或检索相关行),数据集则提供了一个更简便的机制。此外,XML类不支持数据绑定,所以如果要向用户显示数据,就必须使用数据集的XML方法。

  幸运的是,将任何一个给定的数据集合作为XML层次结构或关系数据集相互并不排斥。

  1.数据集支持的最直接的XML方法可能就是GetXml和GetXmlSchema了,这方法只将XML数据或XSD架构作为一个字符串值返回。可以用以下代码来实现:

Dim xmlstr As String
xmlStr = Me.dsMasterl.GetXmlSchema()
Me.tbResult.Text = xmlStr

  和

Dim xmlstr As String
xmlStr = Me.dsMasterl.GetXml
Me.tbResult.Text = xmlStr

  2. 数据集的ReadXmlSchema方法可从XSD架构定义或从XML加载数据集架构定义。

  ReadXmlSchema支持4个版本的方法。可以将流、识别文件名的字符串、TextReader或XmlReader对象传递给方法。

  ReadXmlSchema不加载任何数据,它只加载表、列和约束(键和关系)。如果数据集已经架构信息,新表、列和约束将在必要时添加到现有架构中。如果正读取的架构中定义的对象与现有数据集架构冲突,那么ReadXmlSchema方法将会引发一个异常。

Dim newDS As New System.Data.DataSet()
newDS.ReadXmlSchema("masterSchema.xsd")
Me.daCategories.Fill(newDS.Tables("Categories"))
Me.daproducts.Fill(newDS.Tables("Products"))
SetBindings(newDS)


上一页  1 2 3 4 5  下一页

·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 用VB.NET实现你的游戏梦想
  • VB.NET打造个性化安全防护软件
  • Visual Basic.NET编程的设计思考
  • VB.NET启动并监测外部程序
  • 主板超频特色技术GIGA技嘉篇
  • Win 2000如何安装配置防火墙
  • 防范Windows消息钩子的侵入
  • 性价比之选 AGP显卡的告别秀
  • 大学校园生活之聊天也疯狂
  • Fireworks制作GIF动画Banner
  • 金山打击外挂 遭网络游戏玩家起诉
  • 完全公测《开天》掀起滔滔巨浪
  • Advertisement