gpt4 book ai didi

C# - 来自 XML 的数组作为嵌入式资源

转载 作者:太空宇宙 更新时间:2023-11-03 22:09:13 26 4
gpt4 key购买 nike

我一直在努力寻找一种干净利落的方法来将 XML 文件的内容加载到数组中以供使用,但我在这里和那里只找到了部分答案。为简单起见,我的 XML 文件是一个嵌入式资源,包含大约 115 个元素的列表,所有元素都包含 idname 属性。

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));
}
}

这是我拥有的代码,可以理想地设置这个数组供我使用,尽管由于我尝试了不同的东西,它已经相当糟糕,但我认为它传达了一般的想法。希望有人能理解它并向我解释我做错了什么 (>.<) 如果我错过了一些重要的事情,我很乐意提供更多信息、澄清等!

谢谢!

最佳答案

使用 System.Xml.Linq:

 var items = XElement.Load(fileStream)
.Elements("Item")
.Select(itemXml => new {
id = (int)itemXml.Element("id").Value,
name = itemXml.Element("name").Value
})
.ToArray();

关于C# - 来自 XML 的数组作为嵌入式资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7278663/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com