XML Datei mit Treeview After Select auslesen

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von ryLIX.

    XML Datei mit Treeview After Select auslesen

    Guten Tag,

    ich habe folgendes Problem:

    Ich habe eine Treeview und speichere diese in einer XML. Dazu übergebe ich jedem Knoten eine ID.

    Nun möchte ich mir die ID gern in einem Label anzeigen lassen, damit ich diese dann für andere Dinge ansprechen kann nur leider fehlt mir dazu jeglicher Ansatz.

    hier meine XML Datei:

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <Hilfe>
    3. <Hauptpunkt>
    4. <!--ID-->
    5. <ID>11</ID>
    6. <!--TreeNode Text-->
    7. <Text>Hauptpunkt</Text>
    8. <!--Test-->
    9. <Child>Unterpunkt</Child>
    10. <ID>210</ID>
    11. </Hauptpunkt>
    12. <Hauptpunkt>
    13. <!--ID-->
    14. <ID>12</ID>
    15. <!--TreeNode Text-->
    16. <Text>Hauptpunkt</Text>
    17. <!--Unterpunkt-->
    18. <Child>Unterpunkt</Child>
    19. <ID>220</ID>
    20. <Child>Unterpunkt</Child>
    21. <ID>221</ID>
    22. </Hauptpunkt>
    23. <Hauptpunkt>
    24. <!--ID-->
    25. <ID>13</ID>
    26. <!--TreeNode Text-->
    27. <Text>Hauptpunkt</Text>
    28. <!--Unterpunkt-->
    29. <Child>Unterpunkt</Child>
    30. <ID>230</ID>
    31. <Child>Test</Child>
    32. <ID>231</ID>
    33. </Hauptpunkt>
    34. </Hilfe>


    Ich wäre für jeden Code Ansatz dankbar.

    MfG

    aPeu
    XPath ist was du suchst...
    Zu erst habe ich deine XML Datei etwas angepasst.
    Dadurch wird das auslesen etwas einfacher.
    Die Codierung hab ich auch verändert sonst könntest du Probleme mit Umlauten bekommen

    XML-Quellcode

    1. <?xml version="1.0" encoding="windows-1250"?>
    2. <Hilfe>
    3. <Hauptpunkt ID="11">
    4. <!--TreeNode Text-->
    5. <Text>Hauptpunkt</Text>
    6. <!--Unterpunkt-->
    7. <Child ID="210">Unterpunkt</Child>
    8. </Hauptpunkt>
    9. <Hauptpunkt ID="12">
    10. <!--TreeNode Text-->
    11. <Text>Hauptpunkt</Text>
    12. <!--Unterpunkt-->
    13. <Child ID="220">Unterpunkt</Child>
    14. <Child ID="221">Unterpunkt</Child>
    15. </Hauptpunkt>
    16. <Hauptpunkt ID="13">
    17. <!--TreeNode Text-->
    18. <Text>Hauptpunkt</Text>
    19. <!--Unterpunkt-->
    20. <Child ID="230">Unterpunkt</Child>
    21. <Child ID="231">Test</Child>
    22. </Hauptpunkt>
    23. </Hilfe>


    Und so bekommst du das ganze in dein TreeView:

    VB.NET-Quellcode

    1. Dim XMLDoc As New XmlDocument
    2. Dim Knoten As XmlNode
    3. Dim Unterknoten As XmlNode
    4. Dim TreeKnoten, TreeSubnode As TreeNode
    5. XMLDoc.Load("my.xml")
    6. Dim Knotenliste As XmlNodeList = XMLDoc.SelectNodes("Hilfe/Hauptpunkt")
    7. For Each Knoten In Knotenliste
    8. TreeKnoten = TreeView1.Nodes.Add(Knoten.SelectSingleNode("Text").InnerText)
    9. TreeKnoten.Tag = Knoten.Attributes("ID").Value
    10. TreeKnoten.Name = Knoten.SelectSingleNode("Text").InnerText
    11. Dim Unterknotenliste As XmlNodeList = Knoten.SelectNodes("Child")
    12. For Each Unterknoten In Unterknotenliste
    13. TreeSubnode = TreeKnoten.Nodes.Add(Unterknoten.InnerText)
    14. TreeSubnode.Tag = Unterknoten.Attributes("ID").Value
    15. TreeSubnode.Name = Unterknoten.InnerText
    16. Next
    17. Next

    Der Name des Nodes und der Angezeigte Text sind gleich. Das macht die suche eines Nodes einfacher ;)
    Deine ID ist nun in der Tag-Eigenschaft gespeichert und lässt sich von da aus bequem abrufen und weiter verwenden.