1<?xml version="1.0" encoding="UTF-8"?>
 2<books>
 3 <book>
 4  <name>哈里波特</name>
 5  <price>10</price>
 6  <memo>这是一本很好看的书。</memo>
 7 </book>
 8 <book id="B02">
 9  <name>三国演义</name>
10  <price>10</price>
11  <memo>四大名著之一。</memo>
12 </book>
13 <book id="B03">
14  <name>水浒</name>
15  <price>6</price>
16  <memo>四大名著之一。</memo>
17 </book>
18 <book id="B04">
19  <name>红楼</name>
20  <price>5</price>
21  <memo>四大名著之一。</memo>
22 </book>
23</books>
我要生成一个类似这样格式的XML,//获取当前程序的绝对路径
            string exePath = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
//XML的名称
            string xmlName = string.Format("{0}.xml", batchNo);            //XML在本地的绝对路径
            string xmlPath = exePath.Substring(0, exePath.LastIndexOf(@"\")) + "\\" + xmlName;            //先在本地创建一个以编号命名的XML文件
            File.Create(xmlName);上面是代码创建的一个XML文件,然后我要怎么往这个文件里面写入上面所说的那种格式的数据
节点怎么样自由调整?   希望各位给给参考的材料。在下等。。

解决方案 »

  1.   

    dataset.writexml
    xmldocument 创建
      

  2.   

    16 xmldoc.Load("100001.xml");我在这个Load里面给的是绝对路径
    运行到这里的时候报错了
    文件“F:\FactoryClient\bin\Debug\100001.xml”正由另一进程使用,因此该进程无法访问该文件。
      

  3.   

    处理方式可能不一样,我觉得这个方法稍微好一些,Serialize和Deserialize都很方便,
    给你写了个Sample
      public class Program
        {
    public static void Main(string[] args)
            {
            using (System.IO.Stream stream = new System.IO.FileStream(@"C:\test.xml", System.IO.FileMode.Create))
                {
                    System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(Books));
                    serializer.Serialize(stream, new Books() { 
                    new Book{ name = "book a",price="10.2",memo="a memo"},
                    new Book{ name = "book b",price="10.2",memo="b memo"},
                    });                stream.Close();
                }
                
                //Console.ReadKey();
            }        [Serializable]
            [System.Xml.Serialization.XmlRoot(ElementName="Books")]
            public class Books : List<Book> { }        [Serializable]
            public class Book
            {
                public string name { get; set; }
                public string price { get; set; }
                public string memo { get; set; }
            }
      

  4.   

    http://topic.csdn.net/u/20100901/16/9a681289-5c70-48f8-b17a-29b2f639ecea.html
    看看我之前回复的帖子把,参考7楼的代码
      

  5.   

    首先你要创建xmldocument  对象啊,不然怎么操作
      

  6.   


    XmlDocument xmldoc = new XmlDocument();
                    xmldoc.Load(xmlName); 我定义了这个。  就是这里报错了,下面的代码就没有进行了
      

  7.   

    是因为 之前加载的没关闭
    xmldoc 要释放
      

  8.   

    自己怎么写的,创建XML文件保存
    文件操作filestream等,close关闭
      

  9.   


    public void WriteXML(string xmlName)
    {
        DataSet ds = new DataSet("books");
        DataTable dt = new DataTable("book");
        dt.Columns.Add("id", System.Type.GetType("System.String"));
        dt.Columns.Add("name", System.Type.GetType("System.String"));
        dt.Columns.Add("price", System.Type.GetType("System.Decimal"));
        dt.Columns.Add("meno", System.Type.GetType("System.String"));
        dt.Rows.Add("BO1","哈利波特", 10, "这是一本很好看的书。");
        dt.Rows.Add("BO2", "三国演义", 6, "四大名著之一。");
        dt.Rows.Add("BO3", "水浒", 5, "四大名著之一。");
        ds.Tables.Add(dt);
        ds.WriteXml(xmlName);
        ds.Dispose();
    }
      

  10.   

    用我上面的方法,以表的形式写XML
      

  11.   

                          
    if (!File.Exists(xmlPath))
                {
                    FileStream fs = new FileStream(xmlPath, FileMode.Create);
                    fs.Close();
                }
    1.我用这个方法创建了一个XML文件。但是打开里面是空白的,连这句话都没有
    <?xml version="1.0" encoding="utf-8" ?>   是什么原因?怎么解决?
    2.报错“没有根元素”  什么原因?