|
Dit artikel is gepubliceerd op zondag 31 juli 2011 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. 28.16.1. System.Xml.XmlTextWriter en XDocument.WriteTo MethodIn onderstaand voorbeeld wordt een XDocument geschreven naar een System.Xml.XmlTextWriter via de WriteTo method : Visual Basic 2010 Broncode Option Explicit OnOption Strict OnImports 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 ClassEnd NamespaceDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
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. boven
28.16.2. System.Xml.Formatting EnumeratieWe 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 2010 Broncode Namespace SavingXML Class SavingXDocumentToStreamExample2 Public Shared Sub Main() Dim xmlTextWriter As XmlTextWriter = _ New XmlTextWriter(fileName:= "employee.xml", _ Encoding:=Encoding.UTF8) xmlTextWriter.Formatting = Formatting.Indented Dim document As XDocument = <?xml version= "1.0"?> <employee> <name>John Smith</name> </employee> document.WriteTo(xmlTextWriter) xmlTextWriter.Close() End Sub End ClassEnd NamespaceDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
In bestand employee.xml vinden we : XML Instantie <?xml version="1.0" encoding="utf-8"?>
<employee>
<name>John Smith</name>
</employee> boven
28.16.3. System.IO.TextWriter en XDocument.Save MethodIndien 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 2010 Broncode 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 ClassEnd NamespaceDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
In bestand employee.xml vinden we : XML Instantie <?xml version="1.0" encoding="utf-8"?><employee><name>John Smith</name></employee> boven
28.16.4. Zonder Expliciete StreamIn 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 2010 Broncode 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 ClassEnd NamespaceDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
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. boven
28.16.5. XElement Objecten naar Bestand of StreamAls 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 2010 Broncode 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 ClassEnd NamespaceDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
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 2010 Broncode 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 ClassEnd NamespaceDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
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 zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
|