LINQ To XML Samples - Write |
Write an XElement to XmlWriter using the WriteTo method
Public Sub XLinq15()
Dim po1 = <PurchaseOrder>
<Item price="100">Motor</Item>
</PurchaseOrder>
Dim po2 = <PurchaseOrder>
<Item price="10">Cable</Item>
</PurchaseOrder>
Dim po3 = <PurchaseOrder>
<Item price="10">Switch</Item>
</PurchaseOrder>
Dim sw = New StringWriter()
Dim settings = New XmlWriterSettings()
settings.Indent = True
Dim w = XmlWriter.Create(sw, settings)
w.WriteStartElement("PurchaseOrders")
po1.WriteTo(w)
po2.WriteTo(w)
po3.WriteTo(w)
w.WriteEndElement()
w.Close()
Console.WriteLine(sw.ToString())
End Sub
Result:
<?xml version="1.0" encoding="utf-16"?>
<PurchaseOrders>
<PurchaseOrder>
<Item price="100">Motor</Item>
</PurchaseOrder>
<PurchaseOrder>
<Item price="10">Cable</Item>
</PurchaseOrder>
<PurchaseOrder>
<Item price="10">Switch</Item>
</PurchaseOrder>
</PurchaseOrders>
Write the content of a Dim to XmlWriter using the WriteTo method
Public Sub XLinq16()
Dim doc1 = _
<PurchaseOrders>
<PurchaseOrder>
<Item price="100">Motor</Item>
</PurchaseOrder>
<PurchaseOrder>
<Item price="10">Cable</Item>
</PurchaseOrder>
</PurchaseOrders>
Dim doc2 = _
<PurchaseOrders>
<PurchaseOrder>
<Item price="10">Switch</Item>
</PurchaseOrder>
</PurchaseOrders>
Dim sw = New StringWriter()
Dim w = XmlWriter.Create(sw)
w.WriteStartDocument()
w.WriteStartElement("AllPurchaseOrders")
doc1.WriteTo(w)
doc2.WriteTo(w)
w.WriteEndElement()
w.WriteEndDocument()
w.Close()
Console.WriteLine(sw.ToString())
End Sub
Result:
<?xml version="1.0" encoding="utf-16"?><AllPurchaseOrders><PurchaseOrders><PurchaseOrder><Item price="100">Motor</Item></PurchaseOrder><PurchaseOrder><Item price="10">Cable</Item></PurchaseOrder></PurchaseOrders><PurchaseOrders><PurchaseOrder><Item price="10">Switch</Item></PurchaseOrder></PurchaseOrders></AllPurchaseOrders>
SaveDim using XmlWriter/TextWriter/File
Public Sub XLinq17()
Dim doc = _
<PurchaseOrders>
<PurchaseOrder>
<Item price="100">Motor</Item>
</PurchaseOrder>
<PurchaseOrder>
<Item price="10">Switch</Item>
</PurchaseOrder>
<PurchaseOrder>
<Item price="10">Cable</Item>
</PurchaseOrder>
</PurchaseOrders>
Dim sw = New StringWriter()
'save to XmlWriter
Dim settings = New XmlWriterSettings()
settings.Indent = True
Dim w = XmlWriter.Create(sw, settings)
doc.Save(w)
w.Close()
Console.WriteLine(sw.ToString())
'save to file
doc.Save("out.xml")
End Sub
Result:
<?xml version="1.0" encoding="utf-16"?>
<PurchaseOrders>
<PurchaseOrder>
<Item price="100">Motor</Item>
</PurchaseOrder>
<PurchaseOrder>
<Item price="10">Switch</Item>
</PurchaseOrder>
<PurchaseOrder>
<Item price="10">Cable</Item>
</PurchaseOrder>
</PurchaseOrders>