<?xml version="1.0" encoding="gb2312"?>
<dataset>
  <head>
    <msg_id></msg_id>
    <state_code></state_code>
  </head>
  <datalist>
    <data>
       <trans id="Br_ws_CheckInAdd">
         <field name="InvSID" type="String" value="038100001"/>
<field name="SupplierSID" type="String" value="123456"/>
<field name="RealStorSID" type="String" value="123456"/>
<field name="Voucher" type="String" value=""/>
<field name="NavicertNo" type="String" value="038100001"/>
<field name="VehicleMark" type="String" value="浙A12345"/>
<field name="ContractNO" type="String" value="12345,1232"/>
<field name="Re" type="String" value=""/>
<field name="Re1" type="String" value=""/>
<field name="Re2" type="String" value=""/>
<field name="Re3" type="String" value=""/>
<field name="DetailCount" type="String" value="2"/>
<field name="ProductID" type="StringArray">
<E value="33013101" />
<E value="33023202" />
</field>
<field name="ConfirmQty" type="StringArray">
<E value="200" />
<E value="300" />
</field>
<field name="UnitID" type="StringArray">
<E value="2" />
<E value="2" />
</field>
      </trans>   
      <list>      
        <data_1>          
          <productinfo> </productinfo>
          <barcodeid> </barcodeid>
        </data_1>
        <data_1>          
          <productinfo></productinfo>
          <barcodeid></barcodeid>
        </data_1>
      </list>
    </data> 
  </datalist>
</dataset>怎么序列化和反序列化XML ,最好有例子

解决方案 »

  1.   

    http://www.cnblogs.com/surfsky/archive/2007/03/13/673620.html
      

  2.   

    应该是DataSet对象,不过不是.NET序列化的DataSet对象,你得自己写代码创建DataSet的各个成员了。
      

  3.   

     <book>
       <id></id>
       .....
       <person>
         <firstname></firstname>
         <lastname></lastname>
       </person>
    </book>
    新建两个类对象  book类,person类
    class book
    private List<person> _personlist
    public  List<person> PersonList 
    {...}
    class person
    ....
    序列化和反序列化的话 ,怎么做啊?求解
      

  4.   

            static void Main(string[] args)
            {
                //序列化
                FileStream fs =  new FileStream(@"E:\person.xml",FileMode.Create,FileAccess.Write);
                Book book = new Book();
                book.List = new List<Person>() { new Person { Id = 1, Name = "csdn" }, new Person { Id = 2, Name = "cnblogs" } };
                XmlSerializer xml = new XmlSerializer(book.GetType());
                xml.Serialize(fs, book);
                fs.Close();
                fs.Dispose();
                //反序列化
                FileStream fsRead =  new FileStream(@"E:\person.xml",FileMode.Open,FileAccess.Read);
                XmlSerializer xmlDes = new XmlSerializer(typeof(Book));
                Book bookDes = xmlDes.Deserialize(fsRead) as Book;
                bookDes.List.ForEach(x => Console.WriteLine("ID:{0} Name:{1}", x.Id, x.Name));
                Console.ReadLine();
            }
        }
        public class Book
        {
            private List<Person> list;
            [XmlElement(ElementName="Person")]
            public List<Person> List
            {
                get { return list; }
                set { list = value; }
            }
        }
        public class Person
        {
            private int id;        public int Id
            {
                get { return id; }
                set { id = value; }
            }
            private string name;        public string Name
            {
                get { return name; }
                set { name = value; }
            }
        }
    序列化后的xml<?xml version="1.0"?>
    <Book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Person>
        <Id>1</Id>
        <Name>csdn</Name>
      </Person>
      <Person>
        <Id>2</Id>
        <Name>cnblogs</Name>
      </Person>
    </Book>
      

  5.   

    book类的属性Id,是大写I和小写d组成的,但是XML文件都是小写的
    怎么把book的属性Id 写到XML文件标签为id? 谢谢了
      

  6.   

            [XmlElement(ElementName="id")]
            public int Id
            {
                get { return id; }
                set { id = value; }
            }