手动编辑XML代码

时间:2013-08-08 20:40:38

标签: c# xml

在创建和使用XML文件方面,这是一个非常新的东西。

比如说我有这个用于存储高分的代码

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

我希望在反序列化时创建xml代码,看起来像这样

playername = {“Rocco”,“Shawn”,“Derrick”}

得分= {100,200,300}

等级= {1,2,3}

xml代码会是什么样的?

3 个答案:

答案 0 :(得分: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。

答案 1 :(得分:0)

我怀疑你想拥有多个成员(Arrays)的单个对象。我认为你需要一个对象数组。 无论如何,你的样本是:

<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>

答案 2 :(得分:-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>