【发布时间】:2011-11-08 20:53:09
【问题描述】:
我一直在尝试找到一种很好的干净方法来将 XML 文件的内容加载到要使用的数组中,但我在这里和那里只找到了部分答案。为简单起见,我的 XML 文件是一个嵌入式资源,其中包含大约 115 个元素的列表,这些元素都包含 id 和 name 属性。
XML 看起来像这样:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Items xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Item>
<id>1</id>
<name>Example1</name>
</Item>
<Item>
<id>2</id>
<name>Example2</name>
</Item>
<Item>
<id>3</id>
<name>Example3</name>
</Item>
</Items>
我能够加载所有内容,并且在 InnerXML 中看到我的数据,但我不知道如何正确访问它。
public Form1()
{
InitializeComponent();
assembly = Assembly.GetExecutingAssembly();
XmlDocument xml = null;
try
{
string filePath = "MyProject.ItemList.xml";
Stream fileStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(filePath);
if (fileStream != null)
{
xml = new XmlDocument();
xml.Load(fileStream);
}
}
catch {
//Do nothing
}
XmlDocument itemsFromXML = xml.DocumentElement.InnerXml;
foreach (XmlNode node in itemsFromXML)
{
int id = Convert.ToInt32(node.Attributes.GetNamedItem("id").ToString());
string name = node.Attributes.GetNamedItem("name").ToString();
gameItemList.Add(new GameItem(id, name));
}
}
这就是我拥有的代码,它可以理想地设置这个数组供我使用,尽管由于我尝试不同的东西,它相当糟糕,但我认为它传达了总体思路。希望有人能理解它并向我解释我做错了什么(>。
谢谢!
【问题讨论】:
标签: c# xml visual-studio-2010 embedded-resource