知识大全 利用.NET FileStreams将DTD插入XML文件中

Posted 文件

篇首语:男儿欲遂平生志,五经勤向窗前读。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 利用.NET FileStreams将DTD插入XML文件中相关的知识,希望对你有一定的参考价值。

利用.NET FileStreams将DTD插入XML文件中  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  尽管你可以通过schema来验证和创建XML文件 但相比之下使用 NET类则更加方便 它会带给你更多使用上的灵活性     技术工具箱 VB NET XML ADO NET  ADO NET提供了一种很好的功能来处理dataset和XML之间的转换 你可以通过VS NET在XML中形象地创建dataset schema 同一个document type definition(DTD)一样 schema允许你验证和创建XML文件 但相比之下使用 NET类则更加方便 它会带给你更多使用上的灵活性     然而DTD并非毫无用处 它是广泛应用于非 NET程序中的Internet和数据转换的World Wide Web Consortium(W C)标准 为了能够实现向后(即非 NET)兼容性 NET Framework中包含了通过DTDs来验证XML的性能     然而 就算你需要在一个由Web程序生成的输出XML文件中包含一个DTD 这种情况也是不存在的 或者即使存在 也缺乏可参考的标准文件     而System IO FileStream对象能帮你解决这个问题 你可以创建一个FileStream并将DTD插入你的XML文件中 一个FileStream又引出两种FileStream――它们分别从DTD和dataset中得到 你可以用DTD文件和一些范例XML来设计DataSet schema VS NET的Visual Data Set设计界面使这个工作变得很简单 而存储在应用程序文件夹中的DTD文件会被包含在最终形成的XML里     这个方法用到了许多种不同的FileStreams 一种FileStream (Stream A)中包含有关DTD的信息 另一种FileStream(Stream B)用于创建最终的XML文件 Stream A会流入Stream B中 DataSet会直接流入Stream B中 然后Stream B会关闭并作为一个XML文件存入你的文件系统中     首先应该准备的是DataSet 你可以创建一个新的基于schema的dataset 然后进行数据绑定 接下来 将DTD文件读取到一个FileStream(Stream A)中 你可以通过创建一个FileStream对象和一个StreamReader对象来实现这一点 通过StreamReader来将文本文件读取到FileStream中 Private Function GetDTD(DTDFilePath as string) _  As IO FileStream  Dim fsDTD As System IO FileStream  Dim srDTD As IO StreamReader  fsDTD = New IO FileStream(DTDFilePath _  IO FileMode Open)  srDTD = New IO StreamReader(fsDTD)  GetDTD = fsDTD  End Function    接下来要准备的是用于创建最终的输出文件的主要FileStream (Stream B) 新建一个FileStream 然后用一个StreamWriter来创建一个新文件 此时 这个新文件被称为Final XML 你可以在Web程序文件夹中创建它 你需要注意IO FileMode Create 符合你需要的文件模式有许多种 Dim StreamB As System IO FileStream  Dim swOutput As IO StreamWriter  Try  StreamB = New IO FileStream( _  Server MapPath( ) & FINAL xml _  IO FileMode Create)  Catch ex As Exception  Throw  End Try  swOutput = New IO StreamWriter(StreamB)    之后要进入一个十分巧妙的环节――将Stream A的内容导入Stream B 你可以用单个字节或者字节数组来将数据导入或取出数据流 需要注意的是StreamReader有些例外 它用的是char数据 而不是字节数据     调用你之前写好的GetDTD函数 它将返回作为FileStream的DTD文件 然后建立一个和DTD stream同等长度的字节数组 将stream读取到字节数组中 最后关闭它――因为你不再需要用到它了 现在所有的东西都被包含到字节数组中了 dim StreamA as IO FileStream  StreamA = GetDTD()  Dim bytearray(StreamA Length) As Byte  StreamA Read(bytearray StreamA Length)  StreamA Close()    接下来 将数据从DTD文件中取出并放入已经被创建好成为最终输出文件的数据流中 你可以通过从数组中取出然后放入FileStream来实现这一点 取出数组中所有项目(除最后一项外)以便去掉文件中最后的字符 StreamB Write(bytearray bytearray Length )    现在你就可以将DataSet中的数据导入文件中了 DataSet中的WriteXML方法有许多覆蓋方法 比如写入一个真实的文件中 此时你可以用将输出文件导入一个FileStream (Stream B)的覆蓋方法 myDataSet WriteXml(StreamB)    不要忘记关闭文件数据流 StreamB Close    一旦关闭了Stream B 你便可以从文件系统中访问最新的Final xml文件了 你还可以将这种方法用到其他类型的文本文件中 cha138/Article/program/net/201311/11602

相关参考

知识大全 在ASP.NET应用中插入flash动画

在ASP.NET应用中插入flash动画  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  学ASP

知识大全 .net对海量数据的插入与更新

   对于海量数据的插入和更新ADONET确实不如JDBC做到好JDBC有统一的模型来进行批操作使用起来   非常方便  

知识大全 ASP.NET 中在指定的位置处插入字符

ASP.NET中在指定的位置处插入字符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这是论坛中

知识大全 DTD指南(2)-DTD-XML的构建模块

DTD指南(2)-DTD-XML的构建模块  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  DTD

知识大全 oracle中利用merge语句防止重复插入

  由于项目中需要用到批量插入为了防止用户插入重复的数据需要先判断插入的数据是不是已经存在如果存在则忽略这次插入否则插入这条数据刚开始的时候是先用一条SQL语句判断如果返回结果是真(记录已经存在)则忽

知识大全 hibernate3.0 DTD 定义路径问题

hibernate3.0DTD定义路径问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  大家在

知识大全 利用.net控件实现下拉导航菜单制作的具体方法

这篇文章介绍了利用net控件实现下拉导航菜单制作的具体方法有需要的朋友可以参考一下希望对你有所帮助   今天的一个小测试是老师让用NET用控件来制作一个拉菜单要求如下将鼠标移到父菜单上弹出个

知识大全 asp.net水晶报表中实现关联主表和子表

  一使用视图meeting将多表关联整合在一起  二通过Sql语句筛选数据  三建立和主从表的关联  四注意在CrystalReport表中插入子报表的时候一定要将主从表的关联字段设置好否则出乱子 

知识大全 C#实现远程线程插入

C#实现远程线程插入  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用NET可以实现远程线程插

知识大全 如何将Excel中两个不相邻的两列数据插入图表

如何将Excel中两个不相邻的两列数据插入图表  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!如何将E