2014-01-15 145 views
0

我有一個錯誤反序列化的XML在C#錯誤反序列化XML

 public static void Main (string[] args) 
     { 
      String content; 
      content = "<Users><User><postedBy>Bob</postedBy><name>1</name></User><User><postedBy>Bob2</postedBy><name>2</name></User></Users>"; 
      TextReader reader = new StringReader (content); 
      XmlSerializer s = new XmlSerializer (typeof(User)); 
      List<User> r = (List<User>)s.Deserialize (reader); 
      int i =0; 
      foreach(User user in r) 
      { 
       Console.WriteLine (r[i]); 
       i++; 
      } 
     } 


    } 

    public class User 
    { 
     [XmlElement(ElementName = "postedBy")] 
     public string PostedBy { get; set; } 
     [XmlElement(ElementName = "name")] 
     public string name { get; set; } 
    } 

enter image description here

回答

1

再創建一個類來處理你的根元素:

[XmlRoot(ElementName = "users")] 
public class Users 
{ 
    [XmlElement(ElementName = "user")] 
    public List<User> users { get; set; } 
} 

和反序列化到typeof(Users)

XmlSerializer s = new XmlSerializer(typeof(Users)); 
Users r = (Users)s.Deserialize(reader); 

然後您可以訪問所有User元素r.users