【vb精品源码栏目提醒】:以下是网学会员为您推荐的vb精品源码-〔精品文档〕:xml转化Dataset - 其它管理文献,希望本篇文章对您学习有所帮助。
由于XML的易共享性等众多优点XML技术越来越多地被应用于企业数据处理等领域如应用于企业报表、新闻发布、会计数据处理等等。
XML正快速成为从中间层传送数据到桌面的工具由于XML的数据可以通过中间层代理与多种后端数据库源集成目前绝大多数数据库制造商已全面支持XML技术提供了各种强大功能处理XML数据。
Microsoft的.NET围绕XML这一核心提供了一个强大而快速的开发工具——C它具有前所未有的高开发效率特别是在XML编程方面。
C提供了许多相关类处理XML数据如处理stream的类 XmlReader和XmlWriter DOM的类XmlNode、Xmldocument和XmlElement等 Xpath的类XmlNavigatorXSLT的类XslTransform。
显示XML文件内容 用C编程实现显示XML文件中信息的方法是使用.NET提供的标准类把XML文件内容读入一个StreamReader类对象中再用XmlDatadocument类的DataSet读XML的方法去读XML信息到DataSet中DataSet再以DataView的方式赋给一个Web Form上的DataGrid最后由DataBind显示数据具体实现代码如下: using System.Xml //处理XML必须加的Namespace还需在References中加System.XML.Dll using System.IO //读XML文件必须加的Namespace 然后在Page_Load中加入如下代码 protected void Page_Loadobject sender EventArgs e string datafile guest.xml //假设XML文件名为guest.xml StreamReader tyjnew StreamReaderServer.MapPathdatafile XmlDatadocument datadoc new XmlDatadocument //创建该对象为了读取XML datadoc.DataSet.ReadXmltyj //读取guest.xml文件内容 DataGrid1.DataSource datadoc.DataSet.Tables0.DefaultView //设置DataGrid数据源 DataGrid1.DataBind //绑定 datadocnull //释放资源 tyj.Close //释放StreamReader类这非常重要否则下次打开会显示文件已经被使用 对应于显示用的Web Form中DataGrid的功能我们需要增加下面的函数 protected void OnSelectNameobject senderEventArgs e Session select_name stringDataGrid1.SelectedItem.Cells1.Text.ToString //把选定的 DataGrid某行中的一个单元中的值Name存入一个会话变量中以便下一页用 Response.Redirect xml_manage.aspx //转到有增加删除功能的管理页 Web Form加入以下代码: 代码的作用是当按了“选择”按钮后执行OnSelectName中的程序把选定的 DataGrid中某行中的一个单元中的值Name存入一个会话变量中然后转到下一页。
增加XML文件内容 在Web Form中增加相应的几个TextBox和一个用于提交的Button如本文附图所示并为这button增加如下代码 string datafile guest.xml Xmldocument xmldocument new Xmldocument xmldocument.LoadServer.MapPathdatafile //把guest.xml读到xmldocument中 documentNavigator navigator new documentNavigatorxmldocument //最重要的类 navigator.MoveTodocumentElement navigator.InsertSystem.Xml.TreePosition.FirstChild XmlNodeType.Element Guest //插入节点Guest navigator.InsertSystem.Xml.TreePosition.FirstChild XmlNodeType.Element Name navigator.InsertSystem.Xml.TreePosition.FirstChild XmlNodeType.Text Name navigator.valueName.Text //为该节点赋值 navigator.MoveToParent //返回父节点 Guest …… //使用同类语句在元素Name下插入另一些元素如Country、E-mail地址和留言等 xmldocument.SaveServer.MapPathdatafile //最后保存这个XML文档 navigatornull xmldocumentnull //释放XML文档这样其他程序可以用它 上述代码使用documentNavigator类增加元素和内容注意使用后要释放资源。
删除XML文件内容 删除选定记录对于你上面选择的节点下面代码可查找到该节点并清除选中的信息: string datafile guest.xml Xmldocument xmldocument new Xmldocument xmldocument.LoadServer.MapPathdatafile //把guest.xml读到xmldocument中 documentNavigator navigator new documentNavigatorxmldocument navigator.MoveTodocumentElement navigator.Select /Guests/GuestName Session select_name //参数是Xpath navigator.RemoveSelected //执行删除 xmldocument.SaveServer.MapPathdatafile //最后保存这个XML文档 navigatornull //释放类 xmldocumentnull //释放XML文档这样其他程序可以用它 如需将XML文件中所有信息清除使用“navigator.RemoveChildren”语句即可实现。
结论 综上可知C编写XML应用程序不但快捷而且方便在编写ASP.NET数据库应用程序时用XML文件替代一些小的Table能减少许多数据库存取连接也能让其他网络程序更易使用这些数据。
目前XML的主要瓶颈在于文件系统的读出或写入故应使用更多内存和缓存方式如果信息量不是巨大无比且修改量也较小而浏览量巨大的话使用XML方法将是很好的选择相反如数据量巨大应考虑使用支持XML的数据库无论你使用ADO连接其他数据库还是使用SQL serverC中都有直接的类函数可让这些数据库中的信息直接和XML交互访问。
可扩展的标记语言XML是Web service平台中表示数据的基本格式。
除了易于建立和易于分析外XML主要的优点在于它既是平台无关的又是厂商无关的。
无关性是比技术优越性更重要的软件厂商是不会选择一个由竞争对手所发明的技术的。
XML解决了数据表示的问题但它没有定义一套标准的数据类型更没有说怎么去扩展这套数据类型。
例如整形数到底代表什么16位32位还是64位这些细节对实现互操作性都是很重要的。
W3C制定的XML SchemaXSD就是专门解决这个问题的一套标准。
它定义了一套标准的数据类型并给出了一种语言来扩展这套数据类型。
Web service平台就是用XSD来作为其数据类型系统的。
当你用某种语言如
VB.NET或C来构造一个Web service时为了符合Web service标准所有你使用的数据类型都必须被转换为XSD类型。
你用的工具可能已经自动帮你完成了这个转换但你很可能会根据你的需要修改一下转换过程。
在第二章中我们将深入XSD学习怎样转换自定义的数据类型例如类到XSD的类型。
送给大家一个XML与DataSet的相互转换的类: XmlDatasetConvert 该类提供了四种方法 1、将xml对象内容字符串转换为DataSet 2、将xml文件转换为DataSet 3、将DataSet转换为xml对象字符串 4、将DataSet转换为xml文件 XmlDatasetConvert.cs 复制C源代码using System using System.Collections.Generic using System.Text using System.Data using System.IO using System.Xml namespace XmlDesign class XmlDatasetConvert //将xml对象内容字符串转换为DataSet public static DataSet ConvertXMLToDataSetstring xmlData StringReader stream null XmlTextReader reader null try DataSet xmlDS new DataSet stream new StringReaderxmlData //从stream装载到XmlTextReader reader new XmlTextReaderstream xmlDS.ReadXmlreader return xmlDS catch System.Exception ex throw ex finally if reader null reader.Close //将xml文件转换为DataSet public static DataSet ConvertXMLFileToDataSetstring xmlFile StringReader stream null XmlTextReader reader null try XmlDocument xmld new XmlDocument xmld.LoadxmlFile DataSet xmlDS new DataSet stream new StringReaderxmld.InnerXml //从stream装载到XmlTextReader reader new XmlTextReaderstream xmlDS.ReadXmlreader //xmlDS.ReadXmlxmlFile return xmlDS catch System.Exception ex throw ex finally if reader null reader.Close //将DataSet转换为xml对象字符串 public static string ConvertDataSetToXMLDataSet xmlDS MemoryStream stream null XmlTextWriter writer null try stream new MemoryStream //从stream装载到XmlTextReader writer new XmlTextWriterstream Encoding.Unicode //用WriteXml方法写入文件. xmlDS.WriteXmlwriter int count int stream.Length byte arr new bytecount stream.Seek0 SeekOrigin.Begin stream.Readarr 0 count UnicodeEncoding utf new UnicodeEncoding return utf.GetStringarr.Trim catch System.Exception ex throw ex finally if writer null writer.Close //将DataSet转换为xml文件 public static void ConvertDataSetToXMLFileDataSet xmlDS string xmlFile MemoryStream stream null XmlTextWriter writer null try stream new MemoryStream //从stream装载到XmlTextReader writer new XmlTextWriterstream Encoding.Unicode //用WriteXml方法写入文件. xmlDS.WriteXmlwriter int count int stream.Length byte arr new bytecount stream.Seek0 SeekOrigin.Begin stream.Readarr 0 count //返回Unicode编码的文本 UnicodeEncoding utf new UnicodeEncoding StreamWriter sw new StreamWriterxmlFile sw.WriteLine sw.WriteLineutf.GetStringarr.Trim sw.Close catch System.Exception ex throw ex finally if writer null writer.Close 使用示例 复制C源代码using System using System.Collections.Generic using System.Text using System.Xml using System.Data namespace XmlDesign class Program static void Mainstring args DataSet ds new DataSet region 转换一个XML文件本地网络均可为一个DataSet //http://news.baidu.com/ncmd1classsportnewstnrss //F:study001CSharp_Study002SourceXmlDesignXmlDesignSave_Plan.xml ds XmlDatasetConvert.ConvertXMLFileToDataSethttp://news.baidu.com/ncmd1classsportnewstnrss Console.WriteLine数据集名为0包含1个表 ds.DataSetName ds.Tables.Count foreach DataTable dt in ds.Tables PrintTableNamedt.TableName endregion region 构造一个DataSet并转换为XML字符串 DataSet ds1 new DataSet DataTable dt1 new DataTable dt1.TableName test dt1.Columns.Addid dt1.Columns.Addname dt1.Rows.Addi001 hekui dt1.Rows.Addi002 liyang DataTable dt2 new DataTable dt2.TableName test1 dt2.Columns.Addbookid dt2.Columns.Addbookname dt2.Rows.Addb001 书本1 dt2.Rows.Addb002 书本2 ds1.Tables.Adddt1 ds1.Tables.Adddt2 ds1.DataSetName 方案 string xmlOut XmlDatasetConvert.ConvertDataSetToXMLds1 endregion region 转换一个XML字符串为一个DataSet DataSet ds2 new DataSet ds2 XmlDatasetConvert.ConvertXMLToDataSetxmlOut Console.WriteLine数据集名为0包含1个表 ds2.DataSetName ds2.Tables.Count foreach DataTable dt in ds2.Tables PrintTableNamedt.TableName endregion region 转换一个Dataset为一个XML文件 XmlDatasetConvert.ConvertDataSetToXMLFileds2 c:adadsda1.xml endregion Console.ReadLine private static void PrintTableNamestring tableName Console.WriteLinetableName
上一篇:
强烈推荐2013江苏省专转本计算机(二年级)试卷及答案1
下一篇:
临床前药物安全性评价中毒性病理学新技术的应用