我要根据读出的数据自动生成一个xml文件,文件格式:
<?xml version="1.0" encoding="gb2312" ?> 
<Channels>
<thumb value="upload/up1.txt" />
</Channels>
<Channels>
<thumb value="upload/up2.txt" />
</Channels>请我大家是怎么写的?

解决方案 »

  1.   

    DataSet.WriteXML
    or
    类序列化
      

  2.   

        DataSet.WriteXml()写入XML
      

  3.   

    给你一个曾经写的垃圾点的类吧using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml;
    using System.IO;
    namespace OperateXml
    {
        public class XmlHelper
        {
            /// <summary>
            /// 创建XML文件
            /// </summary>
            /// <param name="fileName">XML文件路径和文件名</param>
            /// <param name="rootElement">XML文件根元素名称</param>
            public static void CreateXmlFile(string fileName,string rootElement)
            {
                if (!File.Exists(fileName))
                {
                    //创建Xml文件
                    XmlTextWriter writer = new XmlTextWriter(fileName, Encoding.UTF8);
                    //设置自动缩进
                    writer.Formatting = Formatting.Indented;
                    //XML版本声明
                    writer.WriteStartDocument();
                    //根元素
                    writer.WriteStartElement(rootElement);
                    //关闭根元素,并书写结束标签
                    writer.WriteEndElement();
                    //将XML写入文件并且关闭XmlTextWriter实例对象
                    writer.Close();
                }
            }        /// <summary>
            /// 添加XML数据
            /// </summary>
            /// <param name="fileName">XML文件路径和文件名</param>
            /// <param name="rootElement">XML文件根元素名称</param>
            /// <param name="itemElement">XML文件二级元素名称</param>
            /// <param name="childElement">XML文件三级元素名称和值</param>
            public static void AppendChildElement(string fileName, string rootElement,string itemElement, Dictionary<string,string> childElement)
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(fileName);
                XmlNode root = xmlDoc.SelectSingleNode(rootElement);
                XmlElement el = xmlDoc.CreateElement(itemElement);
                foreach(var item in childElement)
                {
                    XmlElement elChild = xmlDoc.CreateElement(item.Key);
                    elChild.InnerText = item.Value;
                    el.AppendChild(elChild);
                }            root.AppendChild(el);
                xmlDoc.Save(fileName);
            }
            /// <summary>
            /// 删除数据行
            /// </summary>
            /// <param name="fileName">XML文件</param>
            /// <param name="rowNode">顶级节点</param>
            /// <param name="elementID">要查找的三级节点的InnerText,根据此值删除二级节点(一条数据)</param>
            public static void RemoveRecord(string fileName,string rowNode,string elementID)
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(fileName);
                XmlNodeList nodeList = xmlDoc.SelectSingleNode(rowNode).ChildNodes;
                foreach (XmlNode node in nodeList)
                {
                    XmlElement el = (XmlElement)node;
                    XmlNodeList nodeListChild = el.ChildNodes;
                    foreach (XmlNode nodeChild in nodeListChild)
                    {
                        if (nodeChild.InnerText == elementID)
                        {
                            xmlDoc.SelectSingleNode(rowNode).RemoveChild(node);
                            break;
                        }
                    }
                }
                xmlDoc.Save((fileName));
            }
        }
    }
    她创建的XML文档是这种结构的
    <?xml version="1.0" encoding="utf-8"?>
    <Count>
      <Record>
        <ID>af9b6ade-8bb3-4151-80e9-fc661d0677e0</ID>
        <Year>2009</Year>
        <Month>6</Month>
        <Day>2009-6-1 0:00:00</Day>
        <ClassHour>8</ClassHour>
      </Record>
    </Count>
      

  4.   

    直接把你的数据放到dataset里。
    dataset  myds = new dataset
    然后 myds.WriteXml(“这里是路径”)
      

  5.   

    这个是读和写的代码
    DataSet myds = new DataSet("ds");
            myds.ReadXml(Server.MapPath("Students.xml"));
            DataRow DR = myds.Tables[0].NewRow();
            DR["name"] = txtName.Text.Trim();
            DR["GPA"] = txtsex.Text.Trim();
            DR["age"] = txtage.Text.Trim();
            DR["LockerCombination"] = txtcontain.Text.Trim();
            myds.Tables[0].Rows.Add(DR);
            myds.WriteXml(Server.MapPath("Students.xml"));
      

  6.   

    太感谢大家了,解决了.
    XmlDocument xmldoc;
    XmlNode xmlnode;
    XmlElement xmlelem;xmldoc = new XmlDocument();
    //加入XML的声明段落,<?xml version="1.0" encoding="gb2312"?>
    XmlDeclaration xmldecl;
    xmldecl = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null);
    xmldoc.AppendChild(xmldecl);//加入一个根元素
    xmlelem = xmldoc.CreateElement("", "Channels", "");
    xmldoc.AppendChild(xmlelem);
    //加入另外一个元素
     for (int i = 1; i < 3; i++)
            {
                XmlNode root = xmldoc.SelectSingleNode("Channels");//查找<Channels> 
                 XmlElement xel = xmldoc.CreateElement("thumb");
                xel.SetAttribute("value", "upload/up"+i".txt");
                root.AppendChild(xel);
            }
    //保存创建好的XML文档
    xmldoc.Save(Server.MapPath("upload/data.xml"));