-1
最初の要素が、得られた配列は、最初の要素で構成:C#のXMLアレイデシリアライゼーション戻りのみ私は、次のXMLを逆シリアル化する必要が
<data>
<cards>
<card id="1">
<title>card1text</title>
<category>card1cat</category>
</card>
<card id="2">
<title>card2text</title>
<category>card2cat</category>
</card>
<card id="3">
<title>card3text</title>
<category>card3cat</category>
</card>
</cards>
</data>
オブジェクトを作成する:
[XmlRoot("data")]
public class Data
{
[XmlArray("cards")]
[XmlArrayItem("card", typeof(Card))]
public Card[] cards { get; set; }
}
public class Card
{
[XmlAttribute("id")]
public int id { get; set; }
public string title { get; set; }
public string category { get; set; }
}
デシリアライズ:
public Data data { get; private set; }
private void Awake()
{
var deserializer = new XmlSerializer(typeof(Data));
var stream = new StreamReader(filePath);
data = deserializer.Deserialize(stream) as Data;
stream.Close();
if (data.cards != null)
{
foreach (var card in data.cards)
{
print("card " + card.id + " " + card.title);
}
}
}
デシリアライズはうまくいくようですが、最初のele私はXmlArrayではなく[XmlElement]を使ってみましたが、失敗しました。 ありがとうございます。
あなたのコードだけで私は[XmlArray]と[XElementオブジェクト]の違いを説明してみましょう再び – Kassapa
をxmlファイルを確認してください。 [XmlArray]には、xmlのカードとカードのようなタグの2つのレイヤーが必要です。だから、あなたは1つのクラスのカード(または両方ではないカード)が必要です。 [XElement]を使用するときは、各タグのクラスが必要です。クラスカードとクラスカードが必要です。 – jdweng