我知道,对于这个话题吨帖子的,但因为我的职位期间读取两天,没有什么工作,我决定问这里。 我有一个XML(Level01.xml)文件中像这样如何通过XML的XDocument的XElement属性在C#切换
<map version="1.0">
<tileset>
<image source="....>
</tileset>
<layer name="background">
<data encoding="csv">
3,3,3,3,3,3,3,
3,3,3,3,3,3,3,
3,3,3,3,3,3,3,
3,3,3,3,3,3,3
</data>
</layer>
<layer name="walls">
<data encoding="csv">
182,182,182,182,182,8,8,
182,8,182,8,8,8,8,
182,182,182,182,182,8,8,
182,8,182,8,8,8,8,
</data>
</layer>
</map>
它是一种(瓦片)地图与不同层次,我希望把它收回去XNA。因此,我想从各层的数据读入string[]
这是我试过,但它不会为第二string[] walldata
工作,我绝对绝望,因为我不明白为什么
public class LevelXmlReader
{
public string[] backgroundData;
public string[] wallData;
LevelXmlReader()
{
XDocument doc = XDocument.Load(@"Level/Level01.xml");
foreach (XElement layer in doc.Element("map").Descendants("layer"))
{
var lay = doc.Element("map").Element("layer");
var layName = lay.Attribute("name").Value;
switch (layName)
{
case "background":
{
backgroundData = lay.Element("data").Value.Split(',');
}
break;
case "walls":
{
wallData = lay.Element("data").Value.Split(',');
}
break;
}
}
}
}
当我尝试绘制wallData
,总是有ExceptionError“对象引用未设置为对象的实例”。
谢谢,这工作 –
向前并接受答案即可。如果你一直问问题而没有给出正确的答案,人们就会因此而烦恼 – Nevyn
当然!对不起... –