在VB .net环境下,如何读取XML文件源代码及解析

这篇博客介绍了在VB.NET环境下如何读取和写入XML文件。通过示例代码详细展示了使用XmlTextWriter和XmlTextReader类进行XML操作的过程,包括创建XML文件、写入节点、属性以及读取节点和属性值。
现在XML文件的应用已经非常广泛,几乎在程序编写得过程中,都会遇到XML文件读取和写入的问题,在.net环境中,MS已经提供了非常完善的类来处理XML文件,如果没有特别大的不同,使用这个自带的类就可以完成我们一般的XML文件的读写工作。
       下面我通过一个实际的例子来说明这个类的具体用法:
       我们假设有如下格式的XML文件需要进行读写
    <book genre="autobiography" publicationdate="1967" ISBN="0-201-63361-2">
           <title>The   Autobiography   of   Benjamin   Franklin</title>
           <author>
               <first-name>Benjamin</first-name>
               <last-name>Franklin</last-name>
           </author>
</book>
我们首先来实现写XML文件的部分
我们来进行分析一下:
上面的XML文件中<book></book>部分是第一个节点我们将它当作一个Element来进行处理,<title></title>部分也可以当作一个节点也可以使用Element来进行处理,同理<author><first-name><last-name>部分都可以这样处理。而在<title></title>之间的文字我们可以把它看成一个值,就可以使用普通的string来进行处理,同理<first-name><last-name>部分也可以这样处理,现在就只剩下genre/ publicationdate /ISBN部分的分析,他们是在节点的头上出现的,用来描述这个节点的比较重要的属性的,可以把它当作对节点的说明性文字,这样我们就可以使用Attribute来描述。
通过以上的分析,我们就可以实现了这个Writer类,具体的实现如下:
Dim writer As XmlTextWriter = Nothing
Dim m_Document As String = "c:/sampledata.xml"
     writer = New XmlTextWriter(m_Document, Nothing)
     writer.Formatting = Formatting.Indented
     writer.Indentation = 4
     writer.WriteStartElement("book")
     writer.WriteAttributeString("genre", "autobiography")
     writer.WriteAttributeString("publicationdate", "1967")
     writer.WriteAttributeString("ISBN", "0-201-63361-2")
     writer.WriteStartElement("title")
     writer.WriteString("The   Autobiography   of   Benjamin   Franklin")
     writer.WriteEndElement()
     writer.WriteStartElement("author")
     writer.WriteStartElement("first-name")
     writer.WriteString("Benjamin")
     writer.WriteEndElement()
     writer.WriteStartElement("last-name")
     writer.WriteString("Franklin")
     writer.WriteEndElement()
     writer.WriteEndElement()
     writer.WriteEndElement()
     writer.Flush()
writer.Close()
这个实现的最后的Close是非常重要,它关闭了Writer对象,同时也就将对象中的数据写道了磁盘上。
好的,我们已经可以实现了写XML文件。接下来,我们需要将我们刚才写得XML文件读出来,并且能够显示其中的各个节点和Attribute。
Dim reader As New XmlTextReader("c:/sampledata.xml")
    While (reader.Read())
        If (reader.IsStartElement()) Then
 
            Console.WriteLine(reader.LocalName)
            Console.WriteLine(reader.GetAttribute("genre"))
            Console.WriteLine(reader.GetAttribute("publicationdate"))
            Console.WriteLine(reader.GetAttribute("ISBN"))
 
            Dim doc As New XmlDocument
            doc.Load(reader)
            Dim xmlnode As XmlNode = doc.SelectSingleNode("book").Item("title")
            Console.WriteLine(xmlnode.Name)
            Console.WriteLine(xmlnode.InnerText)
 
            xmlnode = doc.SelectSingleNode("book").Item("author")
            Dim xmlnode1 As XmlNode = xmlnode.Item("first-name")
            Console.WriteLine(xmlnode1.Name)
            Console.WriteLine(xmlnode1.InnerText)
            Dim xmlnode2 As XmlNode = xmlnode.Item("last-name")
            Console.WriteLine(xmlnode2.Name)
            Console.WriteLine(xmlnode2.InnerText)
        End If
    End While
    按照这个方法就可以将所有的数据读出来,如果修改数据的话,可以参照读取的方法进行。
 
参考文档  MSDN 2003
     实现环境:中文 XP SP2
               VS2003
               FrameWork 1.1
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值