XML-Dokument in Listview ausgeben

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von urzeitfurz.

    XML-Dokument in Listview ausgeben

    Moin,
    ich habe ein XML-Dokument, welches ich in ein Listview ausgeben möchte. Hier sind meine Ansätze zum Auslesen: alteran.kilu.de/index.php?content=XmlTutorial

    Das Dokument ist so aufgebaut:

    XML-Quellcode

    1. <Stundenplan>
    2. <montag name="montag">
    3. <stunde1>Mathe</stunde1>
    4. </montag>
    5. <dienstag name="dienstag">
    6. <stunde1>Deutsch</stunde1>
    7. </dienstag>
    8. <mittwoch name="mittwoch">
    9. <stunde1>Geschichte</stunde1>
    10. </mittwoch>
    11. <donnerstag name="donnerstag">
    12. <stunde1>Englisch</stunde1>
    13. </donnerstag>
    14. <freitag name="freitag">
    15. <stunde1>Physik</stunde1>
    16. <stunde2>Erdkunde</stunde2>
    17. </freitag>
    18. </Stundenplan>


    Hier noch mein umgeschriebender Ansatz:

    VB.NET-Quellcode

    1. Dim XmlDoc As New XmlDocument
    2. XmlDoc.Load(My.Application.Info.DirectoryPath & "\user\" & benutzer & "\stundenplan.xml")
    3. 'Nun erstellen wir wieder eine Liste mit allen Elementen, die mit dem XPath Übereinstimmen.
    4. Dim ListeStaedte As XmlNodeList = XmlDoc.SelectNodes("montag//*")
    5. Dim item As New ListViewItem
    6. 'Und verarbeiten alle Elemente in der List.
    7. For Each Stadt As XmlNode In ListeStaedte
    8. item.SubItems.Add(Stadt.ChildNodes(0).ChildNodes(0).Value)
    9. Next
    10. ListView1.Items.Add(item)


    Das Listview hat 5 Spalten mit den Tagen von Montag bis Freitag.
    Irgendwie bekomme ich das Dokument nicht in das Listview.
    hier steht sehr gut beschrieben wie man mit XML arbeitet:
    openbook.galileocomputing.de/vb_net/msvb100000.htm
    schau dir an, und versuche anzupassen.
    Tipp: schau diese Code an:
    [VB 2008] Wie kann man Listview Speichern und laden
    wie der Inhalt geladen/gespeichert wird, auf änliche vorgehensweise machst du mit XML.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „SystemUnknow“ ()

    Ich habe es hinbekommen, dass ich etwas ins ListView ausgebe. Allerdings wird alles in Montag oder Dienstag ausgegeben. Wenn ich drei Stunden habe, geht es von Montag bis Mittwoch.


    Der Aufbau des XML-Dokuments hat sich auch geändert:

    XML-Quellcode

    1. <Stundenplan>
    2. <stunde1 stunde="stunde1">
    3. <montag>Mathe</montag>
    4. <dienstag>Deutsch</dienstag>
    5. <mittwoch>Physik</mittwoch>
    6. <donnerstag>Bio</donnerstag>
    7. <freitag>Chemie</freitag>
    8. </stunde1>
    9. <stunde2 stunde="stunde2">
    10. <montag>Englisch</montag>
    11. <dienstag>Geschichte</dienstag>
    12. <mittwoch>Latein</mittwoch>
    13. <donnerstag>Pause</donnerstag>
    14. <freitag>Pause</freitag>
    15. </stunde2>
    16. </Stundenplan>


    Mein Code:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim XmlDoc As New XmlDocument
    2. XmlDoc.Load(My.Application.Info.DirectoryPath & "\user\" & benutzer & "\stundenplan.xml")
    3. Dim mo As New ListViewItem
    4. Dim di As New ListViewItem
    5. Dim mi As New ListViewItem
    6. Dim don As New ListViewItem
    7. Dim fr As New ListViewItem
    8. 'Nachdem wir nun das XML-Dokument geladen haben, können wir die einzelnen Daten in diesem auslesen.
    9. For Each Node As XmlNode In XmlDoc.DocumentElement.ChildNodes
    10. MsgBox(Node.Name, MsgBoxStyle.Critical)
    11. Try
    12. For Each nodee As XmlNode In Node.ChildNodes
    13. MsgBox(nodee.Name, MsgBoxStyle.Exclamation)
    14. MsgBox(nodee.ChildNodes(0).Value, MsgBoxStyle.Information)
    15. If nodee.Name = "montag" Then
    16. If Node.Name = "stunde1" Then
    17. mo.Text = nodee.ChildNodes(0).Value
    18. Else
    19. mo.SubItems.Add(nodee.ChildNodes(0).Value)
    20. End If
    21. End If
    22. If nodee.Name = "dienstag" Then
    23. If Node.Name = "stunde1" Then
    24. di.Text = nodee.ChildNodes(0).Value
    25. Else
    26. di.SubItems.Add(nodee.ChildNodes(0).Value)
    27. End If
    28. End If
    29. If nodee.Name = "mittwoch" Then
    30. If Node.Name = "stunde1" Then
    31. mi.Text = nodee.ChildNodes(0).Value
    32. Else
    33. mi.SubItems.Add(nodee.ChildNodes(0).Value)
    34. End If
    35. End If
    36. If nodee.Name = "donnerstag" Then
    37. If Node.Name = "stunde1" Then
    38. don.Text = nodee.ChildNodes(0).Value
    39. Else
    40. don.SubItems.Add(nodee.ChildNodes(0).Value)
    41. End If
    42. End If
    43. If nodee.Name = "freitag" Then
    44. If Node.Name = "stunde1" Then
    45. fr.Text = nodee.ChildNodes(0).Value
    46. Else
    47. fr.SubItems.Add(nodee.ChildNodes(0).Value)
    48. End If
    49. End If
    50. Next
    51. Catch ex As Exception
    52. End Try
    53. Next
    54. ListView1.Items.Add(mo)
    55. ListView1.Items.Add(di)
    56. ListView1.Items.Add(mi)
    57. ListView1.Items.Add(don)
    58. ListView1.Items.Add(fr)



    Ich bin schon wieder ziehmlich ratlos. Ich habe alle möglichen Varianten ausprobiert.