Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/content/f/e/r/ferasferas1/html/scriptslibrary/libraries/joomla/database/database.php:2) in /home/content/f/e/r/ferasferas1/html/scriptslibrary/libraries/joomla/session/session.php on line 423

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/content/f/e/r/ferasferas1/html/scriptslibrary/libraries/joomla/database/database.php:2) in /home/content/f/e/r/ferasferas1/html/scriptslibrary/libraries/joomla/session/session.php on line 423

Warning: Cannot modify header information - headers already sent by (output started at /home/content/f/e/r/ferasferas1/html/scriptslibrary/libraries/joomla/database/database.php:2) in /home/content/f/e/r/ferasferas1/html/scriptslibrary/libraries/joomla/session/session.php on line 426

Warning: Cannot modify header information - headers already sent by (output started at /home/content/f/e/r/ferasferas1/html/scriptslibrary/libraries/joomla/database/database.php:2) in /home/content/f/e/r/ferasferas1/html/scriptslibrary/templates/ja_purity/ja_templatetools.php on line 49
A XML reader writer in vb.NET - The Scripts Library Community

Free Programming Tutorials & Source Code

 
  • Increase font size
  • Default font size
  • Decrease font size
Home Visual Basic.NET A XML reader writer in vb.NET

A XML reader writer in vb.NET

E-mail
(3 votes, average: 5.00 out of 5)

The Extensible Markup Language (XML) is a general-purpose specification for creating custom markup languages. It is classified as an extensible language because it allows its users to define their own elements. Its primary purpose is to facilitate the sharing of structured data across different information systems, particularly via the Internet, and it is used both to encode documents and to serialize data. In the latter context, it is comparable with other text-based serialization languages such aps JSON and YAML.

This example will give you a good idea how xml works. First, we need to include the xml namespace at the top of our file:

Imports System.Xml
'Then start with beginning of the module
Module XmlReaderWriter
'Then, let define a sub main so to run the demo when you debug your program: Sub Main()
XMLwriterDemo()
XMLreaderDemo()
Console.ReadLine()
End Sub

The sub main calls two subroutine, XMLwriterDemo() and XMLreaderDemo().
Let's start with the first one. First Create an empty xml file using any editor you prefer.
  
Private Sub XMLwriterDemo()
Dim strDataFile As String = "C:\Data\newbooks.xml"
'Define the path of the xml file in your hard drive
Dim myXmlTextWriter As XmlTextWriter = New XmlTextWriter(strDataFile, Nothing)
'Create an instant variable of XmlText Writer
myXmlTextWriter.Formatting = System.Xml.Formatting.Indented
'define the formatting of myXmlTextWriter
myXmlTextWriter.WriteStartDocument(False)
' Create parent Node that you want to write your data in
myXmlTextWriter.WriteDocType("bookstore", Nothing, "books.dtd", Nothing)
myXmlTextWriter.WriteComment("This file represents a book store inventory database")
myXmlTextWriter.WriteStartElement("bookstore")
'Create another nodes under bookstor and start copying data to them
myXmlTextWriter.WriteStartElement("book", Nothing)
myXmlTextWriter.WriteAttributeString("genre", "autobiography")
myXmlTextWriter.WriteAttributeString("publication_date", "1979")
myXmlTextWriter.WriteAttributeString("ISBN", "0-7356-0562-9")
myXmlTextWriter.WriteElementString("title", Nothing, "The Autobiography of Mark Twain")
myXmlTextWriter.WriteStartElement("Author", Nothing)
myXmlTextWriter.WriteElementString("first-name", "Mark")
myXmlTextWriter.WriteElementString("last-name", "Twain")
myXmlTextWriter.WriteEndElement()
myXmlTextWriter.WriteElementString("price", "7.99")
myXmlTextWriter.WriteEndElement()
'Create another record to under bookstore
myXmlTextWriter.WriteStartElement("book", Nothing)
myXmlTextWriter.WriteAttributeString("genre", "autobiography")
myXmlTextWriter.WriteAttributeString("publication_date", "2005")
myXmlTextWriter.WriteAttributeString("ISBN", "140003003X")
myXmlTextWriter.WriteElementString("title", Nothing, "My Life")
myXmlTextWriter.WriteElementString("Format", Nothing, "Paperback")
myXmlTextWriter.WriteElementString("Pages", Nothing, "1056")
myXmlTextWriter.WriteStartElement("Author", Nothing)
myXmlTextWriter.WriteElementString("first-name", "Bill")
myXmlTextWriter.WriteElementString("last-name", "Clinton")
myXmlTextWriter.WriteEndElement()
myXmlTextWriter.WriteElementString("price", "17.95")
myXmlTextWriter.WriteEndElement()
'end of the xml documents, this will close all open tags
myXmlTextWriter.WriteEndElement()
'Write the XML to file and close the myXmlTextWriter
myXmlTextWriter.Flush()
myXmlTextWriter.Close()
System.Diagnostics.Process.Start(strDataFile)
End Sub

Now, let's let's create a subroutine to read data from the XML file:
 
Private Sub XMLreaderDemo()
' Define an instant variable of XmlTextReader
Dim reader As XmlTextReader = New XmlTextReader("C:\Data\newbooks.xml")
' Loop to go by all elements
Do While (reader.Read())
Select Case reader.NodeType
Case XmlNodeType.Element 'Display beginning of element.
' Display data in the console
Console.WriteLine("=================================")
Console.WriteLine("Depth = " + reader.Depth.ToString)
Console.WriteLine("Element [" + reader.Name + "]")
'If attributes exist ' In case of more records, read it.Else exit
If reader.HasAttributes Then
While reader.MoveToNextAttribute()
Console.Write(" Attribute [")
Console.Write(reader.Name)
Console.WriteLine("] = {0}", reader.Value)
End While
End If
'Display the text in each element.
Case XmlNodeType.Text
Console.Write(" Value = ")
Console.WriteLine(reader.Value)
End Select
Loop

End Sub
'Now you have to close the module:
End Module

Run the program, and then stop it. Go to the Sub main, comment the first line, and uncomment the second and third line. Run it again; what do you see? Easy,ha?