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
Hallo Siedlerchr,
Veröffentlichungen sollte man immer gut formatieren, Dein Snipped sieht ein bischen wie hingeklatscht aus:
Das kannst Du doch besser, oder?
Grüße
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
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
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);
}
}