VB.Net/XML/XML File Read

Материал из VB Эксперт
Перейти к: навигация, поиск

Is starting element

<source lang="vbnet"> Imports System.Xml Public Class Example4

   Shared Sub Main
       Dim reader As XmlReader
       Dim totalPrice As Double = 0
       reader = XmlReader.Create("pubs.xml")
       While reader.Read()
           If reader.IsStartElement() = True And reader.Name = "titles" Then
               reader.MoveToAttribute("price")
               totalPrice += reader.ReadContentAsDouble()
           End If
       End While
   End Sub

End Class


 </source>


Load Xml document and print attributes

<source lang="vbnet"> Imports System Imports System.Xml Imports System.Xml.Schema Imports System.IO Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Collections Imports System.Data Imports System.Windows.Forms

Public Class MainClass

   Shared Sub Main()
       Dim Doc As New XmlDocument()
       Dim TempNode As XmlElement
       Dim x As Integer
               
       Doc.Load("OutDocument.xml")
       Dim DocRoot As XmlElement = Doc.CreateElement("Orders")
       For x = 0 To DocRoot.ChildNodes.Count - 1
           TempNode = CType(DocRoot.ChildNodes(x), XmlElement)
           Console.WriteLine("Order Quantity: {0}", _
                TempNode.GetAttribute("Quantity"))
       Next
   End Sub

End Class


 </source>


Reading an XML file example

<source lang="vbnet"> Module MainModule

   Sub Main()
       Dim MyReader As New Xml.XmlTextReader("c:\simple.xml")
       Dim strOutput As String, intCount As Integer
       Do While MyReader.Read
           Select Case MyReader.NodeType
               Case Xml.XmlNodeType.Element
                   System.Console.WriteLine(MyReader.Name)
                   If MyReader.HasAttributes Then
                       For intCount = 0 To MyReader.AttributeCount - 1
                           MyReader.MoveToAttribute(intCount)
                           System.Console.WriteLine(MyReader.Name & "=" & MyReader.Value)
                       Next
                   End If
               Case Xml.XmlNodeType.Text
                   System.Console.WriteLine(MyReader.Value)
               Case Xml.XmlNodeType.EndElement
                   System.Console.WriteLine(MyReader.Name)
           End Select
       Loop
   End Sub

End Module


 </source>


Use XML Reader to display XML tag, Node type and attributes

<source lang="vbnet"> Imports System.Xml Imports System.Xml.Serialization Imports System.IO

Public Class MainClass

  Public Shared Sub Main()
       Dim myXmlSettings As New XmlReaderSettings()
       Using readMovieInfo As XmlReader = XmlReader.Create("test.xml", myXmlSettings)
           While readMovieInfo.Read()
               ShowXmlNode(readMovieInfo)
               While readMovieInfo.MoveToNextAttribute()
                   ShowXmlNode(readMovieInfo)
               End While
           End While
       End Using
  End Sub
  Shared Private Sub ShowXmlNode(ByVal reader As XmlReader)
       If reader.Depth > 0 Then
           For depthCount As Integer = 1 To reader.Depth
               Console.Write(" ")
           Next
       End If
       If reader.NodeType = XmlNodeType.Whitespace Then
           Console.WriteLine("Type: {0} ", reader.NodeType)
       ElseIf reader.NodeType = XmlNodeType.Text Then
           Console.WriteLine("Type: {0}, Value: {1} ",reader.NodeType,reader.Value)
       Else
           Console.WriteLine("Name: {0}, Type: {1}, AttributeCount: {2}, Value: {3} ", _
                                reader.Name, reader.NodeType,reader.AttributeCount, _
                                reader.Value)
       End If
   End Sub

End Class


 </source>


Using XmlReaderSettings and XmlWriterSettings

<source lang="vbnet"> Imports System.Xml Public Class Example2

   Shared Sub Main()
       Dim reader As XmlReader
       Dim writer As XmlWriter
       Dim readerSettings As New XmlReaderSettings()
       Dim writerSettings As New XmlWriterSettings()
       readerSettings.IgnoreComments = True
       readerSettings.Schemas.Add(Nothing, "pubs.xsd")
       readerSettings.ValidationType = ValidationType.None
       writerSettings.OmitXmlDeclaration = True
       writerSettings.Indent = True
       writerSettings.NewLineOnAttributes = True
       reader = XmlReader.Create("pubs.xml", readerSettings)
       writer = XmlWriter.Create("output.xml", writerSettings)
       While reader.Read()
           writer.WriteNode(reader, True)
       End While
       reader.Close()
       writer.Close()
   End Sub

End Class


 </source>


XmlTextReader: XmlNodeType Element, Text and EndElement

<source lang="vbnet"> Imports System Imports System.Drawing Imports System.Data Imports System.IO Imports System.Collections Imports System.Windows.Forms Imports System.Xml Public Class MainClass

   Shared Sub Main()
       Dim filename As String = "book.xml"
       Dim reader As New XmlTextReader(filename)
       reader.MoveToContent()
       Dim addressData As Collection, elementName As String
       Do While reader.Read
           Select Case reader.NodeType
           Case XmlNodeType.Element
                Console.WriteLine("XmlNodeType.Element " & reader.Name )
           Case XmlNodeType.Text
                Console.WriteLine("XmlNodeType.Text " & reader.Value )
           Case XmlNodeType.EndElement
                Console.WriteLine("XmlNodeType.EndElement " & reader.Name )
           End Select
       Loop
   End Sub

End Class

"<?xml version = "1.0"?> "<books xmlns = "x-schema:book.xdr"> " <book> " <title>C# How to Program</title> " </book> " <book> " <title>Java How to Program, 4/e</title> " </book> " <book> " <title>Visual Basic .NET How to Program</title> " </book> " <book> " <title>Advanced Java 2 Platform How to Program</title> " </book> " <book> " <title>Python How to Program</title> " </book> "</books>


 </source>