0

XML ファイルの作成と使用に関しては、私はまったくの初心者です。

たとえば、ハイスコアを保存するためのこのコードがあるとします

    [Serializable]
    public class HighScoreData
    {
        public string[] PlayerName;
        public int[] Score;
        public int[] Level;
    }

そして、逆シリアル化すると、次のようになるxmlコードを作成したいと思います

playername= {"ロッコ","ショーン","デリック"}

スコア= {100,200,300}

レベル = {1,2,3}

その xml コードはどのようになりますか?

4

3 に答える 3

4

なんでそんなモデルにしたの?私の意見では、次の例はより説得力があります。

[Serializable]
public class HighScoreData
{
    public string PlayerName;
    public int Score;
    public int Level;
}

[Serializable]
public class HighScoresCollection
{
    List<HighScoreData> HighScores; 
}

次に、highScore をシリアル化すると、次のようになります。

<HighScoresCollection>
    <HighScoreData>
        <PlayerName>Rocco</PlayerName>
        <Score>100</Score>
        <Level>1</Level>
    </HighScoreData>
    <HighScoreData>
        <PlayerName>Shawn</PlayerName>
        <Score>200</Score>
        <Level>2</Level>
    </HighScoreData>
    <HighScoreData>
        <PlayerName>Derrick</PlayerName>
        <Score>300</Score>
        <Level>3</Level>
    </HighScoreData>
</HighScoresCollection>

さて、HighScoresCollection私の例のクラスの必要性は議論の余地があり、IMO のスコアのリストを持つことができます。

于 2013-08-08T20:49:44.890 に答える
0

複数のメンバー(配列)を持つ単一のオブジェクトを持ちたいとは思いません。オブジェクトの配列が必要だと思います。とにかくあなたのサンプルは次のとおりです。

<HighScoreData>
    <ArrayOfPlayerName>
        <PlayerName>Rocco</PlayerName>
        <PlayerName>Shawn</PlayerName>
        <PlayerName>Derrick</PlayerName>
    </ArrayOfPlayerName>
    <ArrayOfScore>
        <Score>100</Score>
        <Score>200</Score>
        <Score>300</Score>
    </ArrayOfScore>
    <ArrayOfLevel>
        <Level>1</Level>
        <Level>2</Level>
        <Level>3</Level>
    </ArrayOfLevel>
</HighScoreData>

オブジェクト XML の配列の場合、次のようになります。

<HighScoreData>
    <Player>
        <PlayerName>Rocco</PlayerName>
        <Score>100</Score>
        <Level>1</Level>
    </Player>
    <Player>
        <PlayerName>Shawn</PlayerName>
        <Score>200</Score>
        <Level>2</Level>
    </Player>
    <Player>
        <PlayerName>Derrick</PlayerName>
        <Score>300</Score>
        <Level>3</Level>
    </Player>
</HighScoreData>
于 2013-08-08T20:56:46.943 に答える