[.NET] Gespeicherte XML auslesen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Rainer Zufall, 29. November 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 29. November 2010
    Gespeicherte XML auslesen

    MoinMoin,

    ich muss momentan für die Schule ein Programm schreiben in dem ich Kundendaten eingeben, in einer Datei speichern kann und denn auch wieder direkt einlesen kann. Das speichern habe ich nun per xml gelöst, allerdings komme ich nicht wirklich drauf wie ich das ganze wieder beim Programmstart auslesen kann aus der XML datei.

    Hier der Code zum speichern:
    Code:
     Private Sub XMLWriter()
     Dim enc As New System.Text.UnicodeEncoding
     Dim XMLobj As Xml.XmlTextWriter _
     = New Xml.XmlTextWriter("daten.xml", enc)
     With XMLobj
     .WriteStartDocument()
     .WriteStartElement("Personen")
     For i = 0 To 49
     .WriteStartElement("Person" & i & "")
     .WriteAttributeString("anrede", verzeichnis(i).anrede)
     .WriteAttributeString("name", verzeichnis(i).name)
     .WriteAttributeString("vorname", verzeichnis(i).vorname)
     .WriteAttributeString("geburtsjahr", verzeichnis(i).geburtsjahr)
     .WriteAttributeString("wohnort", verzeichnis(i).wohnort)
     .WriteEndElement()
     Next i
     .WriteEndElement()
     .Close()
     End With
     End Sub
    
    Die ausgegebene XML sieht so aus:
    Code:
    <Personen>
    <Person0 anrede="TEST" name="TEST" vorname="TEST" geburtsjahr="TEST" wohnort="TEST"/>
    <Person1 anrede="" name="" vorname="" geburtsjahr="" wohnort=""/>
    <Person2 anrede="" name="" vorname="" geburtsjahr="" wohnort=""/>
    <Person3 anrede="" name="" vorname="" geburtsjahr="" wohnort=""/>
    .....
    </Personen>
    
    Wäre nicht schlecht wenn jemand aushelfen könnte
     
  2. 29. November 2010
    AW: Gespeicherte XML auslesen

    Hi,

    schaut dir das hier mal an.
    Sollte genau das sein was du machen willst.

    Greetz Jojo

    P.S.: 1. Treffer google.
     
  3. 29. November 2010
    AW: Gespeicherte XML auslesen

    Genau danach habe ich meinen bisherigen Code gerichtet, allerdings kriege ich die eingelesenen Daten nicht ins Array gespeichert genau in der Form wie sie reingekommen sind...
    Wie die Dateien reinkommen werde ich schlau drauß, halt nur nicht bei der Ausgabe, da bräuchte ich einen Denkanstoß wie ich die wieder in das Array eintragen kann

    /Edit:
    Habe eine Lösung gefunden, wenig elegant, aber funktionierend:
    Code:
     Private Sub XMLReader()
     Dim personenzähler As Integer
     personenzähler = 0
     Dim XMLReader As Xml.XmlReader _
     = New Xml.XmlTextReader("daten.xml")
     ' Es folgt das Auslesen der XML-Datei 
     With XMLReader
     Do While .Read ' Es sind noch Daten vorhanden 
     ' Welche Art von Daten liegt an? 
     Select Case .NodeType
     ' Ein Element 
     Case Xml.XmlNodeType.Element
     Console.WriteLine("Es folgt ein Element vom Typ " & .Name)
     ' Alle Attribute (Name-Wert-Paare) abarbeiten 
     If .AttributeCount > 0 Then
     ' Es sind noch weitere Attribute vorhanden 
     While .MoveToNextAttribute ' nächstes 
     If "" & .Name & "" = "anrede" Then
     verzeichnis(personenzähler).anrede = "" & .Value & ""
     End If
     If "" & .Name & "" = "name" Then
     verzeichnis(personenzähler).name = "" & .Value & ""
     End If
     If "" & .Name & "" = "vorname" Then
     verzeichnis(personenzähler).vorname = "" & .Value & ""
     End If
     If "" & .Name & "" = "geburtsjahr" Then
     verzeichnis(personenzähler).geburtsjahr = "" & .Value & ""
     End If
     If "" & .Name & "" = "wohnort" Then
     verzeichnis(personenzähler).wohnort = "" & .Value & ""
     personenzähler = personenzähler + 1
     End If
     End While
     End If
     End Select
    
     Loop ' Weiter nach Daten schauen 
    
     .Close() ' XMLTextReader schließen 
    
     End With
     End Sub
     
  4. 30. November 2010
    AW: Gespeicherte XML auslesen

    Wenn du's eleganter möchtest, kannst du LINQ to XML benutzen. Hier ein bisschen Code (ist in C# aber funktioniert in VB sehr ähnlich, bei MSDN findest du viele Beispiele dazu):
    Code:
    XDocument doc1 = new XDocument(
     new XElement("contacts",
     new XElement("contact",
     new XAttribute("contactId", "2"),
     new XElement("firstName", "Barry"),
     new XElement("lastName", "Gottshall")
     ),
     new XElement("contact",
     new XAttribute("contactId", "3"),
     new XElement("firstName", "Armando"),
     new XElement("lastName", "Valdes")
     )
     )
     );
    
     doc1.Save("test.xml");
    
     XDocument doc2 = XDocument.Load("test.xml");
    
     var contacts = from c in doc2.Descendants("contact")
     select new
     {
     FirstName = c.Element("firstName").Value,
     LastName = c.Element("lastName").Value
     };
    
     foreach (var c in contacts)
     {
     Console.WriteLine(c.ToString());
     }
    
     Console.ReadKey();
    
    Auf diese Weise kannst du die Objekte auch viel einfacher durchsuchen oder was auch immer du damit machen willst.
     
  5. 30. November 2010
    AW: Gespeicherte XML auslesen

    du kannst auchn Dataset nutzn:

    Code:
    Dim Config As New Data.DataSet
    
    XML File auslesen: Config.ReadXml("Pfad")
    
    Zugriff= Config.Tables(0).Rows(x)("Name").tostring
    
     
  6. 30. November 2010
    AW: Gespeicherte XML auslesen

    Danke für die Hilfen, ich schau mir fürs erste mal die möglichkeit von Chillikid an

    Ich schließe hier erstmal.
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.