Visual Basic 2012 Voorbeelden
   

visual basic 2012 broncode voorbeelden

Blijf op de hoogte van de recente aanpassingen op vbvoorbeelden!

Microsoft Visual Studio 2012Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

29.16. XML in Bestand of Stream Bewaren

Print Email Deel op Twitter Deel op Facebook

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

De klassen XDocument en XElement beschikken over een Save method bruikbaar om de XML informatie naar een bestand of een stream ( System.IO.TextWriter of System.Xml.XmlTextWriter stream) te verzenden.

29.16.1. System.Xml.XmlTextWriter en XDocument.WriteTo Method

In onderstaand voorbeeld wordt een XDocument geschreven naar een System.Xml.XmlTextWriter via de WriteTo method :
Visual Basic 2012 Broncode - Codevoorbeeld 783
Option Explicit On
Option Strict On

Imports System.Text
Imports System.IO
Imports System.Xml
Imports System.Xml.Linq

Namespace SavingXML
    Class SavingXDocumentToStreamExample1
        Public Shared Sub Main()
            Dim xmlTextWriter As XmlTextWriter = _
                                   New XmlTextWriter(fileName:="employee.xml", _
                                                     Encoding:=Encoding.UTF8)
            '
            Dim document As XDocument = <?xml version="1.0"?>
                                        <employee>
                                            <name>John Smith</name>
                                        </employee>
            document.WriteTo(XmlTextWriter)
            '
            xmlTextWriter.Close()
        End Sub
    End Class
End Namespace
In bestand employee.xml vinden we :
XML Instantie
<?xml version="1.0" encoding="utf-8"?><employee><name>John Smith</name></employee>
Bemerk dat de output geen niet significante white spaces meer bevat.

29.16.2. System.Xml.Formatting Enumeratie

We kunnen een leesbaarder geheel verkrijgen door in plaats van de default System.Xml.Formatting.None de Formatting property van de XmlTextWriter in te stellen op de System.Xml.Formatting.Indented enumeratiewaarde (1) :
Visual Basic 2012 Broncode - Codevoorbeeld 784
Namespace SavingXML
    Class SavingXDocumentToStreamExample2
        Public Shared Sub Main()
            Dim xmlTextWriter As XmlTextWriter = _
                                   New XmlTextWriter(fileName:="employee.xml", _
                                                     Encoding:=Encoding.UTF8)
            xmlTextWriter.Formatting = Formatting.Indented                 ' (1)
            '
            Dim document As XDocument = <?xml version="1.0"?>
                                        <employee>
                                            <name>John Smith</name>
                                        </employee>
            document.WriteTo(xmlTextWriter)
            '
            xmlTextWriter.Close()
        End Sub
    End Class
End Namespace
In bestand employee.xml vinden we :
XML Instantie
<?xml version="1.0" encoding="utf-8"?>
<employee>
  <name>John Smith</name>
</employee>

29.16.3. System.IO.TextWriter en XDocument.Save Method

Indien je geen XmlTextWriter gebruikt maar bijvoorbeeld een System.IO.TextWriter stream dan kan je aan de Save method van het XDocument object de enumeratiewaarde System.Xml.Linq.SaveOptions.None of System.Xml.Linq.SaveOptions.DisableFormatting doorgeven om het indenting gedrag te sturen.

By default wordt er indenting gebruikt (None), indien DisableFormatting wordt doorgegeven aan de Save method wordt er geen indenting gebruikt :
Visual Basic 2012 Broncode - Codevoorbeeld 785
Namespace SavingXML
    Class SavingXDocumentToStreamExample3
        Public Shared Sub Main()
            Dim textWriter As TextWriter = _
                                       New StreamWriter(Path:="employee.xml", _
                                                        append:=False, _
                                                        Encoding:=Encoding.UTF8)
            '
            Dim document As XDocument = <?xml version="1.0"?>
                                        <employee>
                                            <name>John Smith</name>
                                        </employee>
            document.Save(textWriter, SaveOptions.DisableFormatting)
            '
            textWriter.Close()
        End Sub
    End Class
End Namespace
In bestand employee.xml vinden we :
XML Instantie
<?xml version="1.0" encoding="utf-8"?><employee><name>John Smith</name></employee>

29.16.4. Zonder Expliciete Stream

In onze code kan het nog iets eenvoudiger, door meteen aan de Save method het filepath op te geven van het bestand waarin de XML informatie wordt gestockeerd :
Visual Basic 2012 Broncode - Codevoorbeeld 786
Namespace SavingXML
    Class SavingXDocumentToFileExample
        Public Shared Sub Main()
            Dim document As XDocument = <?xml version="1.0"?>
                                        <employee>
                                            <name>John Smith</name>
                                        </employee>
            document.Save("employee.xml")
        End Sub
    End Class
End Namespace
In bestand employee.xml vinden we :
XML Instantie
<?xml version="1.0" encoding="utf-8"?>
<employee>
  <name>John Smith</name>
</employee>
Bemerk dat hier indenting wordt gebruikt en UTF-8 encoding.

29.16.5. XElement Objecten naar Bestand of Stream

Als we een XElement object via de Save method naar een bestand of stream verzenden, dan wordt dit element als root element van een XML document geschreven :
Visual Basic 2012 Broncode - Codevoorbeeld 787
Namespace SavingXML
    Class SavingXElementToStreamExample
        Public Shared Sub Main()
            Dim xmlTextWriter As XmlTextWriter = _
                                   New XmlTextWriter(fileName:="employee.xml", _
                                                     Encoding:=Encoding.UTF8)
            xmlTextWriter.Formatting = Formatting.Indented
            '
            Dim element As XElement = <employee>
                                          <name>John Smith</name>
                                      </employee>
            element.Save(xmlTextWriter)
            '
            xmlTextWriter.Close()
        End Sub
    End Class
End Namespace
In bestand employee.xml vinden we :
XML Instantie
<?xml version="1.0" encoding="utf-8"?>
<employee>
  <name>John Smith</name>
</employee>
Of zonder expliciete stream :
Visual Basic 2012 Broncode - Codevoorbeeld 788
Namespace SavingXML
    Class SavingXElementToFileExample
        Public Shared Sub Main()
            Dim element As XElement = <employee>
                                          <name>John Smith</name>
                                      </employee>
            element.Save("employee.xml")
        End Sub
    End Class
End Namespace
In bestand employee.xml vinden we :
XML Instantie
<?xml version="1.0" encoding="utf-8"?>
<employee>
  <name>John Smith</name>
</employee>

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.