是否可以在xml文件中包含非reapating元素?

时间:2018-03-21 10:37:51

标签: c# xml parsing xmldocument

我正在制作一个简单的冒险游戏,现在我有一个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还是总是必须只重复元素?

现在游戏有效,但我不确定将这些文件分开是好的做法,因为我必须同时更新它。我宁愿把它们合并在一起。

非常感谢你的帮助。 麦克

1 个答案:

答案 0 :(得分:1)

XDocument提供了通过&#34;路径&#34;访问特定元素的方法。

要获取播放器广告资源的所有元素,您需要与此类似的代码:

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

获取第一个位置的对象:

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

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

检索完所有元素后,您需要处理它们;您可以通过Value属性String来访问元素的值。