日期:2014-05-18  浏览次数:20965 次

我有一个Xml,如何填充到treeview!xml层次不限。
xml层次不限。
自己写了一个递归。速度太慢了!
求广法。给些代码参考也可。

------解决方案--------------------
考虑使用XSLT直接将你的XML转换成目标HTML
------解决方案--------------------
XSLT模版直接转化
------解决方案--------------------
我的想法,读取xml应该比较慢,你可以这样,用 dataset的 ReadXml()方法,把xml数据读成datatable,然后操作,我感觉这样应该比较快
------解决方案--------------------
http://www.cnblogs.com/wuchang/archive/2006/12/01/578719.html
------解决方案--------------------
private void button1_Click(object sender, EventArgs e)
{
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(textBox1.Text);

XmlNodeList xmlNodes = xmlDoc.DocumentElement.ChildNodes;

this.treeView1.BeginUpdate();
this.treeView1.Nodes.Clear();
treeView1.Nodes.Add(new TreeNode(xmlDoc.DocumentElement.Name));
ReadTreeNode(xmlNodes, this.treeView1.Nodes[0].Nodes);
this.treeView1.EndUpdate();
}
catch (Exception e)
{

}
}












private void ReadTreeNode(XmlNodeList xmlNode, TreeNodeCollection treeNode)
{
foreach (XmlNode var in xmlNode)
{
if (var.NodeType != XmlNodeType.Element)
{
continue;
}

TreeNode newTreeNode = new TreeNode();

if (var.HasChildNodes)
{
newTreeNode.Text = var.Name;
ReadTreeNode(var.ChildNodes, newTreeNode.Nodes);
}
else
{
if (var.Attributes.Count !=0)
newTreeNode.Text = var.Attributes[0].Value;
else
newTreeNode.Text = var.Name;
}
treeNode.Add(newTreeNode);
}
}