你的位置:首页 > ASP.net教程

[ASP.net教程][vb.net]XML File Parsing in VB.NET


Introduction

Parsing , , , DataSet and XpathDocument. I will explore the and approach here.

The

Figure 1 outlines the

<??><family> <name gender="Male">  <firstname>Tom</firstname>  <lastname>Smith</lastname> </name> <name gender="Female">  <firstname>Dale</firstname>  <lastname>Smith</lastname> </name></family>

Parsing

Using is appropriate when the structure of the gives you a pre .net feel as you sequentially walk through the file using Read() and get data using GetAttribute() andReadElementString() methods. Thus while using it is up to the developer to keep track where he is in the Read() correctly. Figure 2 below outlines parsing of

 1 Imports System.IO 2 Imports System. 3 Module ParsingUsing 4 Sub Main() 5  Dim m_As  6  'Create the  7  m_New "C:\Personal\family.") 8  'Disable whitespace so that you don't have to read over whitespaces 9  m_ WhiteSpaceHandling.NONE10  'read the 11  m_12  'read the family tag13  m_14  'Load the Loop15  While Not m_16   'Go to the name tag17   m_18   'if not start element exit while loop19   If Not m_Then20    Exit While21   End If22   'Get the Gender Attribute Value23   Dim genderAttribute = m_"gender")24   'Read elements firstname and lastname25   m_26   'Get the firstName Element Value27   Dim firstNameValue = m_"firstname")28   'Get the lastName Element Value29   Dim lastNameValue = m_"lastname")30   'Write Result to the Console31   Console.WriteLine("Gender: " & genderAttribute _32    & " FirstName: " & firstNameValue & " LastName: " _33    & lastNameValue)34   Console.Write(vbCrLf)35  End While36  'close the reader37  m_38 End Sub39 End Module

Parsing

The class is modeled based on Document Object Model. class is appropriate if you need to extract data in a non-sequential manner. Figure 3 below outlines parsing of

 1 Imports System.IO 2 Imports System. 3 Module ParsingUsing 4 Sub Main() 5  Try 6   Dim m_As  7   Dim m_nodelist As  8   Dim m_node As  9   'Create the 10   m_New 11   'Load the 12   m_"C:\CMS\Personal\family.")13   'Get the list of name nodes 14   m_nodelist = m_"/family/name")15   'Loop through the nodes16   For Each m_node In m_nodelist17    'Get the Gender Attribute Value18    Dim genderAttribute = m_node.Attributes.GetNamedItem("gender").Value19    'Get the firstName Element Value20    Dim firstNameValue = m_node.ChildNodes.Item(0).InnerText21    'Get the lastName Element Value22    Dim lastNameValue = m_node.ChildNodes.Item(1).InnerText23    'Write Result to the Console24    Console.Write("Gender: " & genderAttribute _25     & " FirstName: " & firstNameValue & " LastName: " _26     & lastNameValue)27    Console.Write(vbCrLf)28   Next29  Catch errorVariable As Exception30   'Error trapping31   Console.Write(errorVariable.ToString())32  End Try33 End Sub34 End Module

You will see the following result for both

Gender: Male FirstName: Tom LastName: Smith

Gender: Female FirstName: Dale LastName: Smith

 

http://www.codeproject.com/Articles/4826/