2012-05-12 77 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,最好把它放在問題中。另外考慮修改/刪除你的評論,以更有禮貌。 –