I'm making in VB.NET app, my Form have textboxes: txtName, txtLName, txtAge.
I need to enter multiple times this 3 variables(Name,LName,Age) and make XML file.
I use this code:
Dim settings As New XmlWriterSettings()
        settings.Indent = True
        ' Initialize the XmlWriter.
        Dim XmlWrt As XmlWriter = XmlWriter.Create("Test1.xml", settings)
        With XmlWrt
            ' Write the Xml declaration.
            .WriteStartDocument()
            ' Write the root element.
            .WriteStartElement("Invoice")
            ' Start our first person.
            .WriteStartElement("Person")
            ' The person nodes.
            .WriteStartElement("Name")
            .WriteString(txtName.Text.ToString())
            .WriteEndElement()
            .WriteStartElement("LName")
            .WriteString(txtLName.Text.ToString())
            .WriteEndElement()
            .WriteStartElement("Age")
            .WriteString(txtAge.Text.ToString())
            .WriteEndElement()
            ' The end of this person.
            .WriteEndElement()
            ' Close the XmlTextWriter.
            .WriteEndDocument()
            .Close()
        End With
        MessageBox.Show("XML file saved.")
But with this code I only got XML for one person.
I need one XML with more people. For example like this I need:
<?xml version="1.0" encoding="utf-8"?>
<Invoice>
  <Person>
    <Name>Pero</Name>
    <LName>Zder</LName>
    <Age>23</Age>
  </Person>
  <Person>
    <Name>Pero</Name>
    <LName>Zder</LName>
    <Age>23</Age>
  </Person>
  <Person>
    <Name>Pero</Name>
    <LName>Zder</LName>
    <Age>23</Age>
  </Person>
</Invoice>
edit: More info how app should work: I have 3 textboxes (txtName, txtLName, txtAge) and when I fill textboxes and click Next, after click textboxes cleared and I start filling new person. When I enter 20 persons I want to click export to XML, and got all 20 persons in XML file. Number of entries is changeable
Edit:
<?xml version="1.0" encoding="utf-8"?>
<Invoice>
  <Person>
    <Name>Pero</Name>
    <LName>Zder</LName>
    <Age>23</Age>
    <TEST>
       <Job>Yes</Job>
    </TEST>
  </Person>
</Invoice>
EDIT: My Code from APP:
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization
Imports XML_PisacTest
Public Class Form1
    Dim faktura As New Faktura
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        faktura.Ustanova.Add(New Ustanova() With {.Age = txtIsp.Text, .LName = txtFil.Text, .Name = txtName.Text})
        txtName.Text = ""
        txtLName.Text = ""
        txtAge.Text = ""
    End Sub
    Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
        Dim ns As New XmlSerializerNamespaces()
        ns.Add("", "")
        Dim objStreamWriter As New StreamWriter("Invoice.xml") ' in the build folder
        Dim x As New XmlSerializer(faktura.GetType)
        x.Serialize(objStreamWriter, faktura, ns)
        objStreamWriter.Close()
        ' Dim objStreamReader As New StreamReader("Invoice.xml") ' in the build folder
        '  Dim DeserializeObj As New Invoice()
        ' DeserializeObj will contain your objects Deserialized from the Invoice.xml file
        ' DeserializeObj = x.Deserialize(objStreamReader)
        ' objStreamReader.Close()
    End Sub
    Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
        faktura.Osiguranik.Add(New Osiguranik() With {.Fil = txtFil.Text, .Isp = txtIsp.Text, .Prez = txtPrez.Text})
        txtFil.Text = ""
        txtIsp.Text = ""
        txtPrez.Text = ""
    End Sub
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        faktura.DodatneDijagnoze.Add(New DodatneDijagnoze() With {.DDijag = txtDDijag.Text})
        txtDDijag.Text = ""
    End Sub
End Class
<XmlRoot(ElementName:="Ustanova")>
Public Class Ustanova
    <XmlElement(ElementName:="Name")>
    Public Property Name() As String
        Get
            Return m_Name
        End Get
        Set
            m_Name = Value
        End Set
    End Property
    Private m_Name As String
    <XmlElement(ElementName:="LName")>
    Public Property LName() As String
        Get
            Return m_LName
        End Get
        Set
            m_LName = Value
        End Set
    End Property
    Private m_LName As String
    <XmlElement(ElementName:="Age")>
    Public Property Age() As String
        Get
            Return m_Age
        End Get
        Set
            m_Age = Value
        End Set
    End Property
    Private m_Age As String
End Class
<XmlRoot(ElementName:="Osiguranik")>
Public Class Osiguranik
    <XmlElement(ElementName:="Fil")>
    Public Property Fil() As String
        Get
            Return m_Fil
        End Get
        Set
            m_Fil = Value
        End Set
    End Property
    Private m_Fil As String
    <XmlElement(ElementName:="Isp")>
    Public Property Isp() As String
        Get
            Return m_Isp
        End Get
        Set
            m_Isp = Value
        End Set
    End Property
    Private m_Isp As String
    <XmlElement(ElementName:="Prez")>
    Public Property Prez() As String
        Get
            Return m_Prez
        End Get
        Set
            m_Prez = Value
        End Set
    End Property
    Private m_Prez As String
    <XmlElement(ElementName:="DodatneDijagnoze")>
    Public Property DodatneDijagnoze() As String
        Get
            Return m_DodatneDijagnoze
        End Get
        Set
            m_DodatneDijagnoze = Value
        End Set
    End Property
    Private m_DodatneDijagnoze As String
End Class
<XmlRoot(ElementName:="DodatneDijagnoze")>
Public Class DodatneDijagnoze
    <XmlElement(ElementName:="DDijag")>
    Public Property DDijag() As String
        Get
            Return m_DDijag
        End Get
        Set
            m_DDijag = Value
        End Set
    End Property
    Private m_DDijag As String
End Class
<XmlRoot(ElementName:="Faktura")>
Public Class Faktura
    Sub New()
        Me.Ustanova = New List(Of Ustanova)
        Me.Osiguranik = New List(Of Osiguranik)
    End Sub
    <XmlElement(ElementName:="Ustanova")>
    Public Property Ustanova() As List(Of Ustanova)
        Get
            Return m_Ustanova
        End Get
        Set
            m_Ustanova = Value
        End Set
    End Property
    Private m_Ustanova As List(Of Ustanova)
    <XmlElement(ElementName:="Osiguranik")>
    Public Property Osiguranik() As List(Of Osiguranik)
        Get
            Return m_Osiguranik
        End Get
        Set
            m_Osiguranik = Value
        End Set
    End Property
    Private m_Osiguranik As List(Of Osiguranik)
End Class
EDIT:
Here is Next Button:
faktura.Osiguranik.Add(New Osiguranik() With {.Fil = txtFil.Text, .Isp = txtIsp.Text, .Prez = txtPrez.Text, .DodatneDijagnoze = New DDijag() With {.DDijag = txtDDijag.Text}})
And here is my all code for making XML: (DodatneDijagnoze = Test, DDijag = Job)
<XmlRoot(ElementName:="Ustanova")>
Public Class Ustanova
    <XmlElement(ElementName:="Name")>
    Public Property Name() As String
        Get
            Return m_Name
        End Get
        Set
            m_Name = Value
        End Set
    End Property
    Private m_Name As String
    <XmlElement(ElementName:="LName")>
    Public Property LName() As String
        Get
            Return m_LName
        End Get
        Set
            m_LName = Value
        End Set
    End Property
    Private m_LName As String
    <XmlElement(ElementName:="Age")>
    Public Property Age() As String
        Get
            Return m_Age
        End Get
        Set
            m_Age = Value
        End Set
    End Property
    Private m_Age As String
End Class
<XmlRoot(ElementName:="Osiguranik")>
Public Class Osiguranik
    <XmlElement(ElementName:="Fil")>
    Public Property Fil() As String
        Get
            Return m_Fil
        End Get
        Set
            m_Fil = Value
        End Set
    End Property
    Private m_Fil As String
    <XmlElement(ElementName:="Isp")>
    Public Property Isp() As String
        Get
            Return m_Isp
        End Get
        Set
            m_Isp = Value
        End Set
    End Property
    Private m_Isp As String
    <XmlElement(ElementName:="Prez")>
    Public Property Prez() As String
        Get
            Return m_Prez
        End Get
        Set
            m_Prez = Value
        End Set
    End Property
    Private m_Prez As String
    <XmlElement(ElementName:="DodatneDijagnoze")>
    Public Property DodatneDijagnoze() As String
        Get
            Return m_DodatneDijagnoze
        End Get
        Set
            m_DodatneDijagnoze = Value
        End Set
    End Property
    Private m_DodatneDijagnoze As String
End Class
<XmlRoot(ElementName:="DDijag")>
Public Class DDijag
    <XmlElement(ElementName:="DDijag")>
    Public Property DDijag() As String
        Get
            Return m_DDijag
        End Get
        Set
            m_DDijag = Value
        End Set
    End Property
    Private m_DDijag As String
End Class
<XmlRoot(ElementName:="Faktura")>
Public Class Faktura
    Sub New()
        Me.Ustanova = New List(Of Ustanova)
        Me.Osiguranik = New List(Of Osiguranik)
    End Sub
    <XmlElement(ElementName:="Ustanova")>
    Public Property Ustanova() As List(Of Ustanova)
        Get
            Return m_Ustanova
        End Get
        Set
            m_Ustanova = Value
        End Set
    End Property
    Private m_Ustanova As List(Of Ustanova)
    <XmlElement(ElementName:="Osiguranik")>
    Public Property Osiguranik() As List(Of Osiguranik)
        Get
            Return m_Osiguranik
        End Get
        Set
            m_Osiguranik = Value
        End Set
    End Property
    Private m_Osiguranik As List(Of Osiguranik)
Got error Value of type 'DDijag' cannot be converted to 'String'.
EDIT:
I post app on English in comments.
Here is XML how looks:
<?xml version="1.0" encoding="utf-8"?>
<Invoice>
  <People>
    <Name>Test</Name>
    <LName>test</LName>
    <Age>42</Age>
  </People>
  <Family>
    <Sister>ttes</Sister>
    <Brother>ttsa</Brother>
    <F_Child>
      <SisterChild>dsads</SisterChild>
      <BrotherChild>sad</BrotherChild>
      <F_Child_Age>
        <SisterChildAge>fds</SisterChildAge>
        <BrotherChildAge>fdsfds</BrotherChildAge>
      </F_Child_Age>
    </F_Child>
  </Family>
</Invoice>
Now app can make unlimited entries of 'Family' like this:
<?xml version="1.0" encoding="utf-8"?>
<Invoice>
  <People>
    <Name>Test</Name>
    <LName>test</LName>
    <Age>42</Age>
  </People>
  <Family>
    <Sister>ttes</Sister>
    <Brother>ttsa</Brother>
    <F_Child>
      <SisterChild>dsads</SisterChild>
      <BrotherChild>sad</BrotherChild>
      <F_Child_Age>
        <SisterChildAge>fds</SisterChildAge>
        <BrotherChildAge>fdsfds</BrotherChildAge>
      </F_Child_Age>
    </F_Child>
  </Family>
  <Family>
    <Sister>dsa</Sister>
    <Brother>fds</Brother>
    <F_Child>
      <SisterChild>fds</SisterChild>
      <BrotherChild>fds</BrotherChild>
      <F_Child_Age>
        <SisterChildAge>fds</SisterChildAge>
        <BrotherChildAge>fds</BrotherChildAge>
      </F_Child_Age>
    </F_Child>
  </Family>
</Invoice>
I need to make unlimited entries in 'F_Child' in existing 'Family' *needs to look like this:
<?xml version="1.0" encoding="utf-8"?>
<Invoice>
  <People>
    <Name>Test</Name>
    <LName>test</LName>
    <Age>42</Age>
  </People>
  <Family>
    <Sister>ttes</Sister>
    <Brother>ttsa</Brother>
    <F_Child>
      <SisterChild>dsads</SisterChild>
      <BrotherChild>sad</BrotherChild>
      <F_Child_Age>
        <SisterChildAge>fds</SisterChildAge>
        <BrotherChildAge>fdsfds</BrotherChildAge>
      </F_Child_Age>
    </F_Child>
    <F_Child>
      <SisterChild>hggs</SisterChild>
      <BrotherChild>sgfffd</BrotherChild>
      <F_Child_Age>
        <SisterChildAge>fgds</SisterChildAge>
        <BrotherChildAge>fdgsfds</BrotherChildAge>
      </F_Child_Age>
    </F_Child>
  </Family>
  <Family>
    <Sister>dsa</Sister>
    <Brother>fds</Brother>
    <F_Child>
      <SisterChild>fds</SisterChild>
      <BrotherChild>fds</BrotherChild>
      <F_Child_Age>
        <SisterChildAge>fds</SisterChildAge>
        <BrotherChildAge>fds</BrotherChildAge>
      </F_Child_Age>
    </F_Child>
  </Family>
</Invoice>
 
    