Hallo,
kann mir jemand vielleicht helfen und einen Tipp geben, um große XML Dateien in die Treeview einzulesen. Ich mache es wie unten aber für große XML Dateien (z.b. 1,5 MB) ist es nicht geeignet, es dauert einfach zu lange.
treeView1.Nodes.Clear();
treeView1.Nodes.Add(new TreeNode(doc.DocumentElement.Name));
TreeNode tNode = new TreeNode();
tNode = treeView1.Nodes[0];
AddNode(doc.DocumentElement, tNode);
private void AddNode(XmlNode inXmlNode, TreeNode inTreeNode)
{
XmlNode xNode;
TreeNode tNode;
XmlNodeList nodeList;
int i;
// Loop through the XML nodes until the leaf is reached.
// Add the nodes to the TreeView during the looping process.
if (inXmlNode.HasChildNodes)
{
nodeList = inXmlNode.ChildNodes;
for (i = 0; i <= nodeList.Count - 1; i++)
{
xNode = inXmlNode.ChildNodes[i];
inTreeNode.Nodes.Add(new TreeNode(xNode.Name));
tNode = inTreeNode.Nodes[i];
AddNode(xNode, tNode);
}
}
else
{
// Here you need to pull the data from the XmlNode based on the
// type of node, whether attribute values are required, and so forth.
inTreeNode.Text = (inXmlNode.OuterXml).Trim();
}
}
Hi,
du solltest auf jeden Fall das Erzeugen des TreeViews mittels BeginUpdate() und EndUpdate() umrahmen.
Evtl. könntest du es zusätzlich noch ein wenig beschleunigen, wenn du AddRange anstatt einzeln Add benutzt.
du solltest auf jeden Fall das Erzeugen des TreeViews mittels BeginUpdate() und EndUpdate() umrahmen.
Danke, es funktioniert 👍 so einfach ist es.