新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > .Net开发 > Asp.net教程 > 正文:将具有特殊格式的文件转化为xml文件

将具有特殊格式的文件转化为xml文件

新客网 XKER.COM 2003-07-12 来源: 收藏本文
假如我们现在有这样的一个文件food.tab
内容如下:
Room_Number  Breakfast   Lunch      Dinner
290                    Bagel       Pizza      Salmon
301                   Orange      Pizza      Chicken ala King
349                   Sweet Roll  Salad      Tofu and Vegetables
500                   Omelet      Sausage    Veal
702                   Eggs        Tuna fish  Cheese Sandwich
文件中每一项都是用vbtab进行分割的
那么现在我们要把它自动转化为一个如下的xml文件
<Kitchen xmlns="The_Roach_Motel">
  <Room_Service>
    <Room_Number>290</Room_Number>
    <Breakfast>Bagel</Breakfast>
    <Lunch>Pizza</Lunch>
    <Dinner>Salmon</Dinner>
  </Room_Service>
  <Room_Service>
    <Room_Number>301</Room_Number>
    <Breakfast>Orange</Breakfast>
    <Lunch>Pizza</Lunch>
    <Dinner>Chicken ala King</Dinner>
  </Room_Service>
  <Room_Service>
    <Room_Number>349</Room_Number>
    <Breakfast>Sweet Roll</Breakfast>
    <Lunch>Salad</Lunch>
    <Dinner>Tofu and Vegetables</Dinner>
  </Room_Service>
  <Room_Service>
    <Room_Number>500</Room_Number>
    <Breakfast>Omelet</Breakfast>
    <Lunch>Sausage</Lunch>
    <Dinner>Veal</Dinner>
  </Room_Service>
  <Room_Service>
    <Room_Number>702</Room_Number>
    <Breakfast>Eggs</Breakfast>
    <Lunch>Tuna fish</Lunch>
    <Dinner>Cheese Sandwich</Dinner>
  </Room_Service>
</Kitchen>
我们需要怎么做呢:
我们需要利用StreamReader来读取文件内容,存放到一个临时的dataset中,最后用dataset的getxml()来得到这个xml文件
LET'GO
code:
Imports System
Imports System.IO
Imports System.Collections
Imports System.Data
Imports System.Text
Module modXML
    Sub Main()
        Dim strXML As String
        strXML = delimitedDataSet(vbTab, "c:/food.tab")
'你可能需要进行必要的修改
    End Sub

    Function delimitedDataSet(ByVal strDelimiter As String, _
        ByVal strFilePath As String) As String
        Dim oDS As New DataSet()
        Dim strFields As String
        Dim oTable As New DataTable()
        Dim oRows As DataRow
        Dim intCounter As Int32 = 0
        Dim oRow As DataRow()

        oDS.DataSetName = "Kitchen"
        oDS.Namespace = "The_Roach_Motel"
        oDS.Tables.Add("Room_Service")

        Dim oSR As New StreamReader(strFilePath)
        '到文件的头
        oSR.BaseStream.Seek(0, SeekOrigin.Begin)
        '添加到 Header Columns
        For Each strFields In oSR.ReadLine().Split(strDelimiter)
            oDS.Tables(0).Columns.Add(strFields)
        Next

        '现在添加rows

        oTable = oDS.Tables(0)
        While (oSR.Peek() > -1)
            oRows = oTable.NewRow()
            For Each strFields In oSR.ReadLine().Split(strDelimiter)
                oRows(intCounter) = strFields
                intCounter = intCounter + 1
            Next
            intCounter = 0
            oTable.Rows.Add(oRows)
        End While
        Return oDS.GetXml()
        'oDS.WriteXml("c:/food.xml")
       '或者将它写到硬盘上
    End Function
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐