Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
XML To TreeView
Siedlerchr
myCSharp.de - Member



Dabei seit:
Beiträge: 180
Herkunft: NRW

Themenstarter:

XML To TreeView

beantworten | zitieren | melden

Beschreibung:

Dieses Snippet liest eine XML Datei aus und fügt sie einer TV hinzu.
Das eigentliche Snippet hab ich gefunden und angepasst.


Edit// Snipper neu formatiert, ist beim Copy/Paste passiert..
Kommentare sind hierbei unnötig, da der Code soweit selbst erklärend ist.


  /// <summary>
        /// Diese Methode lädt ein XML-Dokument, geht es hierarchisch durch und fügt jeweils die Value Eigenschaft 
        /// eines XML-Nodes in eine TreeView als Node ein
        /// </summary>
        /// <param name="treeView"></param>
        public void XmlToTreeView(TreeView treeView)
        {
            myXmlDocument.Load("...");
            treeView.Nodes.Clear();
            XmlRekursivImport(treeView.Nodes, myXmlDocument.DocumentElement.ChildNodes);
            TranslateNodes(treeView.Nodes);
        }
        private void XmlRekursivImport(TreeNodeCollection elem, XmlNodeList xmlNodeList)
        {
            TreeNode treeNode = new TreeNode(); ;
            foreach (XmlNode myXmlNode in xmlNodeList)
            {
                if (myXmlNode.Value == null)
                {
                    treeNode = new TreeNode(myXmlNode.Name);
                }

                if (myXmlNode.ChildNodes.Count > 0)
                {
                    XmlRekursivImport(treeNode.Nodes, myXmlNode.ChildNodes);
                }
                elem.Add(treeNode);
            }
        }

Schlagwörter: XML, TreeView, Rekursiv
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Siedlerchr am .
private Nachricht | Beiträge des Benutzers
Joetempes
myCSharp.de - Member

Avatar #avatar-3309.jpg


Dabei seit:
Beiträge: 914
Herkunft: Germany

beantworten | zitieren | melden

Hallo Siedlerchr,

Veröffentlichungen sollte man immer gut formatieren, Dein Snipped sieht ein bischen wie hingeklatscht aus:

- Keine Kommentare
- Doppelte Leerzeilen
- Doppelte Simikolons (; ;)
- Zwischen Methoden & wo angebracht keine Leerzeile

Das kannst Du doch besser, oder?

Grüße
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Joetempes am .
private Nachricht | Beiträge des Benutzers
slayerofyourmind
myCSharp.de - Member



Dabei seit:
Beiträge: 10

beantworten | zitieren | melden

Hallo,

ich weiß, man soll alte Threads nicht wieder zum leben erwecken. Allerdings frage ich mich, für woher diese Zeile kommt, bzw. was sie macht.

TranslateNodes(treeView.Nodes);

Mit freundlichen Grüßen

Slayerofyourmind
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo slayerofyourmind,

ich würde vermuten, dass diese eine eigene Methode von Siedlerchr ist, die bestimmte Nacharbeiten durchführt. Der eigentliche Import ist zu diesem Zeitpunkt aber schon erfolgt. Im einfachsten Fall kannst und solltest du den Aufruf einfach entfernen.

herbivore
private Nachricht | Beiträge des Benutzers
Pardasus
myCSharp.de - Member



Dabei seit:
Beiträge: 63

beantworten | zitieren | melden

Ich war mal so frei und habe den Code leicht korrigiert und um die Ausgabe des Values ergänst.


/// <summary>
/// Diese Methode lädt ein XML-Dokument, geht es hierarchisch durch und fügt jeweils die Value Eigenschaft 
/// eines XML-Nodes in eine TreeView als Node ein
/// </summary>
/// <param name="treeView"></param>
public void XmlToTreeView(TreeView treeView)
{
    XmlDocument myXmlDocument = new XmlDocument();
    myXmlDocument.Load("yourXMLFile.xml");
    treeView.Nodes.Clear();
    XmlRekursivImport(treeView.Nodes, myXmlDocument.DocumentElement.ChildNodes);
}

private void XmlRekursivImport(TreeNodeCollection elem, XmlNodeList xmlNodeList)
{
    TreeNode treeNode = new TreeNode();

    foreach (XmlNode myXmlNode in xmlNodeList)
    {
        if (myXmlNode.Value == null)
        {
            treeNode = new TreeNode(myXmlNode.Name);
        }
        else
        {
            treeNode = new TreeNode(myXmlNode.Value);
        }

        if (myXmlNode.ChildNodes.Count > 0)
        {
            XmlRekursivImport(treeNode.Nodes, myXmlNode.ChildNodes);
        }
        elem.Add(treeNode);
    }
}
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Pardasus am .
private Nachricht | Beiträge des Benutzers