如题

解决方案 »

  1.   

    前两天 刚做的 代码赋值给你
    //XML每行的内容
            private string xmlLine = "";
            //用于写XML文件
            private StreamWriter sr;        private void Form1_Load(object sender, EventArgs e)
            {
                TreeNode tb = new TreeNode();
                tb.Text = "父节点";
                TreeNode tn = new TreeNode();
                tn.Text = "ceshi";
                TreeNode ts = new TreeNode();
                ts.Text = "tree";
                tn.Nodes.Add(ts);
                tb.Nodes.Add(tn);
                tn = new TreeNode();
                tn.Text = "完全";
                tb.Nodes.Add(tn);
                treeView1.Nodes.Add(tb);
            }        private void button1_Click(object sender, EventArgs e)
            {
                //XmlDocument doc = new XmlDocument();
                //XmlElement Node1 = doc.CreateElement("charts");//创建节点anychart子节点charts 
                //doc.AppendChild(Node1);
                //XmlElement Node4 = doc.CreateElement("chart_settings");//创建节点chart第二个子节点chart_settings
                //doc.DocumentElement.AppendChild(Node4);
                //doc.Save("c:\\text.xml"); //保存xml               exportToXml(this.treeView1, "C:\\text.xml");        }
            /// <summary>
            /// 将TreeView中导出为XML数据
            /// </summary>
            /// <param name="tv">TreeView控件</param>
            /// <param name="filename">XML文件的保存路径</param>
            public void exportToXml(TreeView tv, string filename)
            {
                sr = new StreamWriter(filename, false, System.Text.Encoding.UTF8);
                //写文件头部内容
                //下面是生成RSS的OPML文件
                sr.WriteLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
                sr.WriteLine("<opml version=\"1.0\">");
                sr.WriteLine("<head>");
                sr.WriteLine("<title>RSS</title>");
                sr.WriteLine("</head>");
                sr.WriteLine("<body>");            //遍历根节点
                foreach (TreeNode node in tv.Nodes)
                {
                    if (node.Nodes.Count == 0)
                    {
                        xmlLine = GetRSSText(node);
                    }
                    else
                    {
                        xmlLine = GetDirectoryText(node);
                    }                sr.WriteLine(xmlLine);                //递归遍历节点
                    parseNode(node);
                }            //写文件尾部内容
                sr.WriteLine("</body>");
                sr.WriteLine("</opml>");
                sr.Close();
            }        //递归遍历节点内容,最关键的函数
            private void parseNode(TreeNode tn)
            {
                IEnumerator ie = tn.Nodes.GetEnumerator();            while (ie.MoveNext())
                {
                    TreeNode ctn = (TreeNode)ie.Current;                //为最底层节点,即该节点为RSS节点
                    if (ctn.Nodes.Count == 0)
                    {
                        xmlLine = GetRSSText(ctn);
                        sr.WriteLine(xmlLine);
                    }
                    else//不是最底层节点,即该节点为目录节点
                    {
                        xmlLine = GetDirectoryText(ctn);
                        sr.WriteLine(xmlLine);
                    }                //如果还有子节点则继续遍历
                    if (ctn.Nodes.Count > 0)
                    {
                        parseNode(ctn);
                    }
                }            sr.WriteLine("</outline>");
            }        //成生RSS节点的XML文本行
            private string GetRSSText(TreeNode node)
            {
                //根据Node属性生成XML文本
                string rssText = "<outline type=\"rss\" text=\"" + node.Text + "\" xmlUrl=\"URL\"/>";            return rssText;
            }        //成生目录节点的XML文本行
            private string GetDirectoryText(TreeNode node)
            {
                //根据Node属性生成XML文本
                string directoryText = "<outline text=\"" + node.Text + "\">";            return directoryText;
            }
      

  2.   

    用文件流
    读取节点写入XML中。平时怎么从XML中获得数据就怎么把数据送回去
      

  3.   

    http://topic.csdn.net/u/20100717/23/63d61797-dfc0-4b75-a29f-b597f1010eac.html
      

  4.   

    private void TreeNode2Xml(TreeNodeCollection treeNodes, XmlNode xmlNode)
            {
                XmlDocument doc = xmlNode.OwnerDocument;
                foreach (TreeNode treeNode in treeNodes)
                {
                    XmlNode element = doc.CreateNode("element", "Item", "");
                    XmlAttribute attr = doc.CreateAttribute("Title");
                    attr.Value = treeNode.Text;
                    element.Attributes.Append(attr);
                    element.AppendChild(doc.CreateCDataSection(treeNode.Tag.ToString()));
                    xmlNode.AppendChild(element);                if (treeNode.Nodes.Count > 0)
                    {
                        TreeNode2Xml(treeNode.Nodes, element);
                    }
                }
            }