C# 如何使用C从XML文件中读取列表?(新华社发行)
我对XML和XNA非常陌生,在阅读列表时遇到了一个障碍,我正在输出列表来存储具有许多不同层的平铺图 我的XML看起来像一个示例:C# 如何使用C从XML文件中读取列表?(新华社发行),c#,xml,list,xna,C#,Xml,List,Xna,我对XML和XNA非常陌生,在阅读列表时遇到了一个障碍,我正在输出列表来存储具有许多不同层的平铺图 我的XML看起来像一个示例: <XnaContent xmlns:Maps="TileEditorLibrary.Maps"> <Asset Type="Maps:TileMap"> <R> <Item> <C> <Item> <E>
<XnaContent xmlns:Maps="TileEditorLibrary.Maps">
<Asset Type="Maps:TileMap">
<R>
<Item>
<C>
<Item>
<E>1</E>
<ID>8</ID>
<B>8</B>
<H />
<T />
</Item>
<Item>
<E>1</E>
<ID>8</ID>
<B>8</B>
<H />
<T />
</Item>
</C>
</Item>
</R>
</Asset>
</XnaContent>
目前,我正在运行应用程序,以查看它是否能够正确地获取文档并能够解析信息,但它抛出了一个空对象引用
如果这看起来很模糊,我很抱歉,但由于我对XML缺乏经验,我不确定还有什么其他信息可以帮助任何潜在的顾问
如果还有什么可以帮忙的,请询问,我会尽力解释
非常感谢
Barry您应该做的是阅读XML。 这样,您就可以创建一个表示XML的类并直接对其进行反序列化,而无需进行任何XML解析
e就是一个例子。您应该做的是阅读XML。 这样,您就可以创建一个表示XML的类并直接对其进行反序列化,而无需进行任何XML解析
e是一个如何做到这一点的例子。这可能会让你深思:
public void LoadContent(XDocument doc, TileMap myMap)
{
var lookup = new Dictionary<string, Action<string>>()
{
{ "E", v => { Console.WriteLine("E = " + v); } },
{ "ID", v => { Console.WriteLine("ID = " + v); } },
{ "B", v => { Console.WriteLine("B = " + v); } },
{ "H", v => { Console.WriteLine("H = " + v); } },
{ "T", v => { Console.WriteLine("T = " + v); } },
};
var actions =
from e in doc.Root
.Element("Asset")
.Element("R")
.Elements("Item")
.Elements("C")
from mv in e
.Elements("Item")
.Elements()
let name = mv.Name.ToString()
let value = mv.Value
select new Action(() => lookup[name](value));
foreach (var a in actions)
a.Invoke();
}
这可能会让你深思:
public void LoadContent(XDocument doc, TileMap myMap)
{
var lookup = new Dictionary<string, Action<string>>()
{
{ "E", v => { Console.WriteLine("E = " + v); } },
{ "ID", v => { Console.WriteLine("ID = " + v); } },
{ "B", v => { Console.WriteLine("B = " + v); } },
{ "H", v => { Console.WriteLine("H = " + v); } },
{ "T", v => { Console.WriteLine("T = " + v); } },
};
var actions =
from e in doc.Root
.Element("Asset")
.Element("R")
.Elements("Item")
.Elements("C")
from mv in e
.Elements("Item")
.Elements()
let name = mv.Name.ToString()
let value = mv.Value
select new Action(() => lookup[name](value));
foreach (var a in actions)
a.Invoke();
}
哪一行抛出空对象引用错误?哪一行抛出空对象引用错误?谢谢,希望现在可以排序谢谢,希望现在可以排序