0

在创建和使用 XML 文件方面,我非常陌生。

比如说我有这个代码来存储高分

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

我想创建xml代码,当它反序列化时它看起来像这样

玩家名= {"罗科","肖恩","井架"}

分数= {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 回答
-1

如下:

   <xml>
   <HighScoreData>
      <PlanerName>Player 1</PlayerName>
      <Score>200</Score>
      <Level>1</Level>
   </HighScoreData>

   <HighScoreData>
      <PlanerName>Player 2</PlayerName>
      <Score>100</Score>
      <Level>1</Level>
   </HighScoreData>

...
</xml>
于 2013-08-08T20:47:42.877 回答