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) を実行するだけです

ありがとう

4

1 に答える 1

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();

すべての船の名前のリストがあります

于 2012-05-12T01:31:59.467 に答える