| 【摘要】XML(可扩展标记语言)是一种提供数据描述格式的标记语言。XML 标记用于定义数据本身的结构和数据类型。客户信息、订单、研究结果、帐单、病历、天气信息数据及其他信息都可以转换为 XML。XML将用户界面与结构化数据分隔开来。这种数据与显示的分离使得集成来自不同数据源的数据成为可能。本文主要研究在ADO.NET中如何实现XML与数据库的数据交换。论文关键词:XML,元信息,ADO,数据交换
 表1 Weather表 City Weather 北京 多云 上海 晴 广州 多云转晴 同时建立一个weather.xml文档来说明它们之间的转换。 
   北京 多云   上海 晴   广州 多云转晴     1.使用DataSet读取天气信息的XML文档并显示。 XML Schema中还支持名域。一个Schema除了可以定义XML文档词汇表外,还可以通过名域来定义目标名域,和其它可能会使用到的词汇名域。XML Schema提供了一个丰富而更具弹性的机制来定义XML文档词汇表。它使用XML语言本身来定义关于一个XML文档的元信息(meta-information),这使得XML的协同工作能力大大的增强了。我们来看如何从xml文件中读取数据。 (1)首先定义DataSet对象,并指要读取的XML文档路径,于使用DataSet提供了ReadXml方法读取XML文档,并保存在DataTable对象中. DataSet mydataset = new DataSet(); mydataset.ReadXml(Server.MapPath('~/App_Data/weather.xml')); DataTable myTable = mydataset.Tables[0]; (2)接下来使用循环用表格方式打印在网页上。 … foreach (DataColumn myColumn in myTable.Columns) { Response.Write('' + myRow[myColumn] + ''); } Response.Write(''); } … 完成后运行,天气信息的XML文档就会以表格的形式打印要网页上。 2.将数据库中的天气信息导出为XML文件。 XML还有一个更抽象的优点,即作为层次型的格式比关系型的更好。它可以用一种很直接的方式来设计数据结构来符合你的需要。 所以有时要把数据库的数据转换为XML文件。 数据访问是一个应用系统的核心。公用语言运行环境(Common Language Runtime)提供了管理数据访问应用程序接口(API)的方法。而这些API将不论它的数据源是什么,都能提取出我们所需要的数据。我们主要用:Connection, Commands, 和 DataSet等三个对象。 (1)首先要导入System.Data 和System.Data. OleDb这两个名字空间。 (2)接下来定义连接字符串。 string connectionstr = 'Provider=Microsoft.Jet.OleDb.4.0; Data Source =' + Server.MapPath('~/App_Data/weather.mdb'); (3)定义连接对象。 OleDbConnection Conn = new OleDbConnection(connectionstr); (4)打开数据库连接。 Conn.Open(); (5)使用数据适配器读取数据。 OleDbDataAdapter da = new OleDbDataAdapter('select * from weather', Conn); DataSet mydataset = new DataSet(); da.Fill(mydataset); (6)导出数据为XML格式。 string xmlString = mydataset.GetXml(); Response.Write(xmlString); Response.Write(' '); try {   System.IO.FileStream fs = new System.IO.FileStream(Server.MapPath('~/App_Data/weather1.xml'), System.IO.FileMode.Create); mydataset.WriteXml(fs); fs.Close(); } catch (Exception ce) {   Response.Write(ce.Message); } Response.Write('导出成功'); Conn.Close(); 完成上述步骤后,App_Data文件夹下就会生成一个weather1.xml天气信息的XML文档,以便进行数据交换。 3.将天气信息的XML文档 文件写入数据。 在很多应用中,依靠文件系统是不够充分的。如果更新很多,文件系统会因为同时写入而受到破坏。数据库则通常支持事务处理,可以应付所发生的请求而不至于损坏。对于复杂的查询统计要有反复、及时的更新,此时数据库表现都很优秀。所以有时我们也需要把XML文档写入数据库进行保存和操作。下面是把天气信息的XML写入数据库的方法。 (1)定义连接字符串, 定义连接对象, 打开数据库连接。步骤同上。 (2)定义XmlDocument,并指定要读取的XML文档路径,以及在XML文档中的根节点。 XmlDocument xmld = new XmlDocument(); xmld.Load(Server.MapPath('~/App_Data/weather.xml')); XmlNodeList xlml = xmld.SelectNodes('NewDataSet/Table'); (3)循环遍历节点,并把取得的值使用SQL语句写入数据库中。 for (int i = 0; i < xlml.Count; i++) { city = xlml[i].SelectSingleNode('city').In  1/2    1 2 下一页 尾页 |