myCSharp.de - DIE C# und .NET Community (https://www.mycsharp.de/wbb2/index.php)
- Gemeinschaft (https://www.mycsharp.de/wbb2/board.php?boardid=64)
-- .NET-Komponenten und C#-Snippets (https://www.mycsharp.de/wbb2/board.php?boardid=67)
--- XML To TreeView (https://www.mycsharp.de/wbb2/thread.php?threadid=92397)


Geschrieben von Siedlerchr am 21.01.2011 um 13:50:
  XML To TreeView
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.

C#-Code:
  /// <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


Geschrieben von Joetempes am 21.01.2011 um 14:13:
 
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


Geschrieben von slayerofyourmind am 15.01.2015 um 09:19:
 
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.

C#-Code:
TranslateNodes(treeView.Nodes);

Mit freundlichen Grüßen

Slayerofyourmind


Geschrieben von herbivore am 15.01.2015 um 12:57:
 
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


Geschrieben von Pardasus am 06.06.2018 um 22:56:
 
Ich war mal so frei und habe den Code leicht korrigiert und um die Ausgabe des Values ergänst.

C#-Code:
/// <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);
    }
}


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 30.05.2020 04:35