xml 文件中是否可以包含非重复元素?

Is it possible to have non reapating element in an xml file?

我正在开发一款简单的冒险游戏,现在我有一个 xml 文件来加载世界,另一个文件供玩家使用。

这是我想要创建的简化的xml:

<root>
   <world>
        <location>
           //room 1
             <inventory>
                  talble, chair...
             </inventory>
        </location> 
        <location>
             //room 2
        </location>
   </world>
   <player>
       //some player stats i.e the location he is currently in.
       <inventory>
           the player bag containing objects
       </inventory>
   </player>
</root>

我能否解析该文件以获取播放器清单或位置清单?是否允许创建不对称 xml 或它是否总是必须只是重复元素?

现在游戏可以运行了,但我不确定将这些文件也分开是个好习惯,因为我必须始终同时更新它们。我宁愿将它们合并在一起。

非常感谢您的帮助。 麦克

XDocument 提供通过 "path".

访问特定元素的方法

要获取玩家物品栏的所有元素,您需要类似这样的代码:

IEnumerable<XElement> playerItems = x.Element("player").Element("inventory").Elements();

并获取第一个位置的对象:

IEnumerable<XElement> locationObjects = x.Element("world").Elements("location").First().Element("inventory").Elements();

注意Element()Elements()的区别,第一个returns只有一个元素;第二个 returns 一个 IEnumerable<XElement>。 当您想要检索所有位置的对象时,这很重要。

获取所有元素后,您需要处理它们;您可以通过 Value 属性 访问元素的值,这是 String.