本帖最后由 lindping 于 2009-07-05 17:50:04 编辑

解决方案 »

  1.   

    参考:
    http://blog.sina.com.cn/s/blog_44e90a13010009zr.html
    http://topic.csdn.net/t/20050906/13/4252525.html
    http://blog.csdn.net/venus0314/archive/2005/08/16/455690.aspx
      

  2.   

    这个要序列化得自己写些代码实现,比较麻烦,而且效率可能也不高直接用DataTable读取吧            DataTable dt = new DataTable();            dt.Columns.Add("field1", typeof(string));
                dt.Columns.Add("field2", typeof(string));            dt.ReadXml("c:\\xxx.xml");读取之后,有多少个Item,就有多少行
      

  3.   

    把XML的内容改一下的话,可以反序列化为List<Item>
    <ArrayOfItem> 
      <Item> 
        <field1>xx </field1> 
        <field2>yy </field2> 
      </Item> 
        ... 
    </ArrayOfItem> 
    修改可以读取出来之后把<root>和</root>替换掉就可以了,然后用下面的代码:
    XmlTextReader xmlTextReader = new XmlTextReader("c:\\test.xml");
    XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<Item>));
    List<Item> listOfItem = xmlSerializer.Deserialize(xmlTextReader) as List<Item>;
    public class Item
        {
            public string field1 = string.Empty;
            public string field2 = string.Empty;
        }
      

  4.   


    一定要把根节点名称改为ArrayOfItem吗? 就是这个让我很不爽,我查过msdn,似乎这个名字规则可以修改,但是msdn又没有具体例子,说的不清不楚。
      

  5.   

    需要相同的程序集,并且定义的类必须具备相同的签名。SYSTEM.A 序列化之后,无法反序列化为 Microsoft.A。
      

  6.   

    用 <XmlElement(ElementName:="root")> 试试?