2012-05-12 46 views
0

请告诉我,如何反序列化这一块的XmlSerializer如何反序列化列表的列表列出

<Root> 
    <Ship KindID=0> 
     <Ship0 Name='A' /> 
     <Ship1 Name='B' /> 
     <Ship2 Name='C' /> 
    </Ship> 
    <Ship KindID=1> 
     <Ship3 Name='AA' /> 
     <Ship4 Name='BB' /> 
     <Ship4 Name='cC' /> 
    </Ship> 
</Root> 

public class Ships { 
    public List<Ship> Ships {get; set;} 
} 
public class Ship { 
    public string Name {get;set;} 
    public int KindID {get;set;} 
} 

我想要的方式无需浏览所有XML路径进行反序列化手册。只要做到XmlSerializer.Deserialize(MEM,OBJ)

感谢

+0

序列化的名单**通过串行**? –

+0

刚刚编辑的问题 –

+0

我不知道如何在C#中做到这一点。只在ActionScript 3.0中试过 –

回答

3

你可以反序列化类似的东西。

var reader = new StreamReader("Path of the xml"); 
var shipCollection = (List<Ship>)serializer.Deserialize(reader); 

一旦你收集你可以使用LINQ

var shipNameCollection = shipCollection.Where(t=> t.Name != null).ToList(); 

您将所有的船只

+0

不是最好的,但好方法 –

+0

你能解释一下原因吗?我一直在使用这样的解串器 – om471987

+2

@Peter PAD,最好把它放在问题中。另外考虑修改/删除你的评论,以更有礼貌。 –