Mit CSharp bekomme ich mit deinem Code auch den <RECORD>-Knoten. Dass nicht mehr erscheint, wundert mich nicht, denn du fragst ja auch nur die Child-Knoten des Root ab. Versuch´s mal so:
Code:
void Button1Click(object sender, System.EventArgs e)
{
try
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(@"..\..\test.xml");
XmlNode root = xmldoc.DocumentElement;
this.ScanNode(null, root);
}
catch (
Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
void ScanNode(TreeNode tvParent, XmlNode parentNode)
{
TreeNode root = tvParent;
if (root == null)
{
root = new TreeNode(parentNode.Name);
treeView1.Nodes.Add(root);
}
foreach (XmlNode node in parentNode)
{
TreeNode newNode = new TreeNode(node.Name);
root.Nodes.Add(newNode);
this.ScanNode(newNode, node);
}
}
Ist CSharp und mit TreeView, zeigt aber zumindest alle Knotennamen an.
Da es .NET ist, lässt sich das problemlos nach Delphi umbauen. Namespace und Typen sind ja die gleichen.