<root>
  <file_type name="AAAAAAA">
    <item name="A1">
      <key name="a11"></key>      
      <key name="a12"></key>
    </item>
    <item name="A2">
      <key name="a21"></key>
      <key name="a22"></key>
      <key name="a23"></key>
    </item>
    <item name="A3">
    </item>
    <item name="A4"></item>
  </file_type> 
</root>
例如上文档 存在C盘下

解决方案 »

  1.   

    DataSet.WriteXml
    这个是用着最简单的。此外就是XML的序列化。最后比较麻烦的就是用XmlTextWriter了。
      

  2.   

    我觉得你这个完全可以用DataSet的WriteXml来做。我一般都是new一个DataSet, 然后用ReadXml方法, 读出一个DataSet出来
    然后在监视窗口看结构。把结构研究明白了, 就new一个相同结构的DataSet, 以后专门用来写数据用。
      

  3.   

    我是这么做的:public const string XML_INIT = "<?xml version=\"1.0\" encoding=\"utf-8\"?><root/>";XmlDocument doc = new XmlDocument();
    doc.LoadXml(XML_INIT);// 添加各个节点,数据doc.Save(sDataFileName);
    也可以用XmlWriter等相关类
      

  4.   

    http://msdn.microsoft.com/en-us/library/system.xml.linq.xstreamingelement.aspx
      

  5.   


                string xml = @"<?xml version='1.0'?>
                            <root>
                            <file_type name='AAAAAAA'>
                            <item name='A1'>
                            <key name='a11'></key>
                            <key name='a12'></key>
                            </item>
                            <item name='A2'>
                            <key name='a21'></key>
                            <key name='a22'></key>
                            <key name='a23'></key>
                            </item>
                            <item name='A3'>
                            </item>
                            <item name='A4'></item>
                            </file_type>
                            </root>";
                XmlDocument doc = new XmlDocument();
                doc.InnerXml = xml;
                doc.Save("D:\\a.xml");
      

  6.   

    你想存C盘doc.Save("D:\\a.xml");=>doc.Save("C:\\Test.xml");
      

  7.   

    using system.xml.linq;XElement xmlTree1 = new XElement("Root",
        new XElement("file_type", new Attribute("name","AAAAAAA")
        new XElement("item", new Attribute("name","A1"),
        new XElement("key", new Attribute("name","a11")),
        new XElement("key", new Attribute("name","a12"))),
        new XElement("item", new Attribute("name","A2"),
        new XElement("key", new Attribute("name","a21")),
        new XElement("key", new Attribute("name","a22"))),
        new XElement("item", new Attribute("name","A3"),
        new XElement("item", new Attribute("name","A4"))   
    );TextWriter tw = File.CreateText("c:\xxx.xml");
    tw.wirte(xmlTree1);
    tw.close();
      

  8.   


    那如果我要再想加一个Item呢?
      

  9.   

    用Linq To XML来做吧,举例如下:
    XDocument xd = new XDocument(
        new XComment(updateID.ToString()),
        new XElement("Root",
            new XElement("BaseDir", textBox1.Text),
            updatefiles.Select(t => new XElement("CusFileInfo",
                new XElement("FileName", t.FileName),
                new XElement("FileHash", t.FileHash),
                new XElement("FileLength", t.FileLength)))
        )
    );
    xd.Save("fileinfos.xml");
      

  10.   

    Linq to XML通俗,易懂,直观.
    using System.Xml.Linq;namespace ConsoleApplication
    {
        class Program
        {        static void Main(string[] args)
            {
                XDocument xd = new XDocument();
                XDeclaration xdec = new XDeclaration("1.0", "uft-8", "yes");
                XElement xeRoot = 
                    new XElement("root",
                                new XElement("file_type", new XAttribute("name", "AAAAAAA")
                                    , new XElement("item", new XAttribute("name", "A1")
                                        , new XElement("key", new XAttribute("name", "a11"))
                                        , new XElement("key", new XAttribute("name", "a12")))
                                    , new XElement("item", new XAttribute("name", "A2")
                                        , new XElement("key", new XAttribute("name", "a21"))
                                        , new XElement("key", new XAttribute("name", "a22"))
                                        , new XElement("key", new XAttribute("name", "a23")))
                                    , new XElement("item", new XAttribute("name", "A3"))
                                    , new XElement("item", new XAttribute("name", "A4"))
                                  )
                                );
                xd.Declaration = xdec;
                xd.Add(xeRoot);
                xd.Save(@"c:\test.xml");
            }
        }
    }
      

  11.   

    你可以使用字符串 +也可以使用 XmlDocument 操作string xml = @"<?xml version='1.0'?>
                            <root>
                            <file_type name='AAAAAAA'>
                            <item name='A1'>
                            <key name='a11'></key>
                            <key name='a12'></key>
                            </item>
                            <item name='A2'>
                            <key name='a21'></key>
                            <key name='a22'></key>
                            <key name='a23'></key>
                            </item>
                            <item name='A3'>
                            </item>
                            <item name='A4'></item>
                            </file_type>
                            </root>";
                XmlDocument doc = new XmlDocument();
                doc.InnerXml = xml;
                XmlElement xe = doc.CreateElement("item");
                xe.SetAttribute("name", "A5");            
                doc.SelectSingleNode("//root//file_type").AppendChild(xe);
                doc.Save("D:\\a.xml");            
      

  12.   

    我们还是从最基础的开始吧。
    XmlWriter。 这个应该是最底层的。不要用字符串自己拼。 那不是扯淡么。
    using System.Xml;XmlWriter writer = XmlWriter.Create("test.xml");
    writer.WriteStartElement("root");writer.WriteStartElement("file_type");
    writer.WriteStartAttribute("name", "AAAAAA");
    writer.WriteEndAttribute();writer.WriteStartElement("item");
    writer.WriteStartAttribute("name", "A1");
    writer.WriteEndAttribute();
    writer.WriteStartElement("key");
    writer.WriteStartAttribute("name", "a11");
    writer.WriteEndAttribute();
    writer.WriteEndElement();// key
    writer.WriteEndElement();// item
    writer.WriteEndElement();// file_type
    writer.WriteEndElement();// root
    writer.Close();