110,571
社区成员
发帖
与我相关
我的任务
分享
#region 遍历TreeView并实现向XML的转化
/// <summary>
/// 遍历treeview并实现向XML的转化
/// </summary>
/// <param name="TheTreeView">树控件对象</param>
/// <param name="XMLFilePath">XML输出路径</param>
/// <returns>0表示函数顺利执行</returns>
public static void TreeToXML(TreeNodeCollection nodes, string XMLFilePath)
{
//-------初始化转换环境变量
textdoc = new XmlDocument();
xmlfilepath = XMLFilePath;
textWriter = new XmlTextWriter(xmlfilepath, null);
//-------创建XML写操作对象
textWriter.Formatting = Formatting.Indented;
//-------开始写过程,调用WriteStartDocument方法
textWriter.WriteStartDocument();
//-------写入说明
//textWriter.WriteComment("this XML is created from a tree");
//-------添加第一个根节点
textWriter.WriteStartElement("rootNode");
textWriter.WriteEndElement();
//------ 写文档结束,调用WriteEndDocument方法
textWriter.WriteEndDocument();
//-----关闭输入流
textWriter.Close();
//-------创建XMLDocument对象
textdoc.Load(xmlfilepath);
//------选中根节点
Xmlroot = textdoc.SelectSingleNode("rootNode");
//------遍历原treeview控件,并生成相应的XML
TransTreeSav(nodes, (XmlElement)Xmlroot);
}
private static void TransTreeSav(TreeNodeCollection nodes, XmlElement ParXmlnode)
{
//-------遍历树的各个节点,同时添加节点至XML
foreach (TreeNode node in nodes)
{
XmlElement subNode = textdoc.CreateElement("subNode");
XmlElement nodeName = textdoc.CreateElement("nodeName");
XmlElement nodeTag = textdoc.CreateElement("nodeTag");
nodeName.InnerXml = node.Text;
if (node.Tag != null)
{
nodeTag.InnerXml = node.Tag.ToString();
}
subNode.AppendChild(nodeName);
subNode.AppendChild(nodeTag);
ParXmlnode.AppendChild(subNode);
if (node.Nodes.Count > 0)
{
TransTreeSav(node.Nodes, subNode);
}
}
textdoc.Save(xmlfilepath);
}
#endregion