XML Dateien auslesen - Nur bestimmte "Sektoren"

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    XML Dateien auslesen - Nur bestimmte "Sektoren"

    Hallo Leute,

    ich habe folgendes Problem:

    Ich habe eine XML-Datei mit folgendem Aufbau:

    XML-Quellcode

    1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    2. <chapter chapter="intro">
    3. <mp3 path="" />
    4. <line Text="Testzeile1" />
    5. <line Text="-Testzeile2-" />
    6. <line Text="--Testzeile3--" />
    7. <line Text="---Testzeile4---" />
    8. <line Text="----Testzeile5----" />
    9. <line Text="-----Testzeile6-----" />
    10. </chapter>
    11. <chapter chapter="1">
    12. <mp3 path="Pfad" />
    13. <line Text="Testzeile1" />
    14. <line Text="-Testzeile2-" />
    15. <line Text="--Testzeile3--" />
    16. <line Text="---Testzeile4---" />
    17. <line Text="----Testzeile5----" />
    18. <line Text="-----Testzeile6-----" />
    19. </chapter>



    Jetzt habe ich mir eine Funktion gebastelt, die mir die Werte ausgeben soll, aber nicht alle auf einmal! Die Funktion sieht folgendermaßen aus:

    VB.NET-Quellcode

    1. Public Function ReadXML(ByVal chapter As String)
    2. Dim list As List(Of String) = New List(Of String)
    3. Dim path As String
    4. Dim XMLReader As Xml.XmlReader = New Xml.XmlTextReader("language.xml")
    5. With (XMLReader)
    6. Do While .Read
    7. Select Case .NodeType
    8. Case Xml.XmlNodeType.Element
    9. If .AttributeCount > 0 Then
    10. While .MoveToNextAttribute
    11. If .Name = "chapter" AndAlso .Value = chapter Then
    12. MsgBox("test")
    13. End If
    14. If .Name = "path" Then
    15. path = .Value
    16. End If
    17. If .Name = "Text" Then
    18. list.Add(.Value)
    19. End If
    20. End While
    21. End If
    22. End Select
    23. Loop
    24. .Close()
    25. End With
    26. Return New Object() {path, list}


    Wie man sieht, habe ich die Chapter-Variable, diese soll eigentlich festlegen, welcher Abschnitt ausgelesen werden soll. Ich hab jetz knapp ne Stunde bei Google gesucht, aber keinen Code gefunden, der das macht. Es werden nur komplette XML-Dateien ausgelesen...


    Hoffe jemand kann mir helfen.

    Liebe Grüße,
    mietzekotze
    Wenn Du die XML-Funktionalität nutzen willst, musst Du dem System die Datei überlassen und Dich um die Knoten selbst kümmern.
    Da gibt es zum Navigieren folgende Grundfunktionalitäten:
    - in einen Knoten hinein
    - aus einem Knoten heraus
    - zum nächsten Child
    - zum nächsten Sibling
    Lies jedesmal die Daten aus und entscheide dann, was zu tun ist.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!