转化为xml的问题 怎样将一个TreeView转化为XML导出? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己遍历节点,写到xml,跟LINQ没关系 ,treeview的nodes不能用LINQ 可以用对象 XmlSerializer 序列化与反序列化XML 这样操作更方便 递归方式 读取 TreeNode 写入 XmlNode XmlTextWriter tw;public void WriteXML(TreeNodeCollection tc){ foreach (TreeNode Node in tc) { WriteOneXML(Node); WriteXML(Node.Nodes); tw.WriteEndElement(); }} private void WriteOneXML(TreeNode Node){ string objid = Node.Tag.ToString(); string objName = Node.Text; tw.WriteStartElement("cantoncode" + (Node.Level + 1)); tw.WriteAttributeString("cantoncode", objid); tw.WriteAttributeString("cantonname", objName); } private void button3_Click(object sender, EventArgs e){ string fileName = @"C:/cantoncode.xml"; tw = new XmlTextWriter(fileName, null); tw.Formatting = Formatting.Indented; tw.WriteStartDocument(); tw.WriteStartElement("cantoncode"); WriteXML(treeView1.Nodes); tw.WriteEndElement(); tw.WriteEndDocument(); tw.Flush(); tw.Close();} 怎么知道treeview的节点深度啊?? 最简单的把 TreeNode.Text 保存为 Xml 节点名的例子// 方法private static void TreeToXml(TreeNodeCollection tree, XmlDocument xmlDoc, XmlNode xml){ foreach (TreeNode item in tree) { XmlNode node = xml.AppendChild(xmlDoc.CreateElement(item.Text)); TreeToXml(item.Nodes, xmlDoc, node); }}// 调用XmlDocument xmlDoc = new XmlDocument();xmlDoc.AppendChild(xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null));XmlNode root = xmlDoc.AppendChild(xmlDoc.CreateElement("root"));TreeToXml(某TreeView.Nodes, xmlDoc, root);xmlDoc.Save("保存路径"); 这个说的很到位了,foreach遍历下然后存XML就行了吧 vs2005 C# 代码中的空格怎么都用点给代替了? C#中关于 listview控件的问题 【Winfrom】 新手求教,在线等 Remoting中,如何踢掉客户端的事件的预定? 一个文件存放在数据库的字段中,如何实现在网页中调相应的应用程序打开它? winform:为什么以下简单的多线程会出现空值错误? 怎样段判断文本框只能输入数字的代码? 急急急!datagrid 我想列出我的网络中所有存在的domain,哪位能给一段代码演示一下如何来作? 有没有介绍c#和.net好一些的网站? 怎么判断上传的文件是挂马文件呢? 怎样给EntityFramework的导航传值
public void WriteXML(TreeNodeCollection tc)
{
foreach (TreeNode Node in tc)
{
WriteOneXML(Node);
WriteXML(Node.Nodes);
tw.WriteEndElement();
}
}
private void WriteOneXML(TreeNode Node)
{
string objid = Node.Tag.ToString();
string objName = Node.Text;
tw.WriteStartElement("cantoncode" + (Node.Level + 1));
tw.WriteAttributeString("cantoncode", objid);
tw.WriteAttributeString("cantonname", objName);
}
private void button3_Click(object sender, EventArgs e)
{
string fileName = @"C:/cantoncode.xml";
tw = new XmlTextWriter(fileName, null);
tw.Formatting = Formatting.Indented;
tw.WriteStartDocument();
tw.WriteStartElement("cantoncode");
WriteXML(treeView1.Nodes);
tw.WriteEndElement();
tw.WriteEndDocument();
tw.Flush();
tw.Close();
}
private static void TreeToXml(TreeNodeCollection tree, XmlDocument xmlDoc, XmlNode xml)
{
foreach (TreeNode item in tree)
{
XmlNode node = xml.AppendChild(xmlDoc.CreateElement(item.Text));
TreeToXml(item.Nodes, xmlDoc, node);
}
}// 调用
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.AppendChild(xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null));
XmlNode root = xmlDoc.AppendChild(xmlDoc.CreateElement("root"));
TreeToXml(某TreeView.Nodes, xmlDoc, root);
xmlDoc.Save("保存路径");