In VB.NET kann man ja XML-Literals verwenden um XML-Ausgabe zu erreichen. Das ist aber ziemlich sinnlos, wenn man keine dynamische Ausgabe machen kann.
Dim personen As XElement = _ <personen> <person> <vorname>Patrick Hines</vorname> <nachname>Patrick Hines</nachname> </person> </personen>
Kann man hierbei die Personen aus einer Liste von Person-Objekten generieren lassen, wenn die Liste beliebig lang sein darf?
Mit einer Kombination von XLINQ und LINQ to Objects ist es möglich.
Beispiel:
Imports System Imports System.Collections.Generic Imports System.Linq Imports System.Xml.Linq
Namespace ConsoleApplication1 Class Program Private Shared Sub Main(ByVal args As String()) Dim personList As New List(Of Person)()
Dim personXML As New XElement("personen", _ From p In personList _ Select _ New XElement("person", _ New XElement("vorname", p.Vorname), _ New XElement("nachname", p.Nachname)))
Console.WriteLine(personXML) Console.ReadKey() End Sub End Class
Public Class Person Private _Vorname As String Public Property Vorname() As String Get Return _Vorname End Get Set(ByVal value As String) _Vorname = value End Set End Property Private _Nachname As String Public Property Nachname() As String Get Return _Nachname End Get Set(ByVal value As String) _Nachname = value End Set End Property End Class End Namespace
Mit einer Kombination von XLINQ und LINQ to Objects ist es möglich.
Beispiel:
Dim personList As New List(Of Person)() Dim personXML As New XElement("personen", _ From p In personList _ Select _ New XElement("person", _ New XElement("vorname", p.Vorname), _ New XElement("nachname", p.Nachname)))