Я пытался найти хороший чистый способ загрузки содержимого файла 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));
}
}
Это код, который у меня есть, который идеально настроил бы этот массив для меня, чтобы использовать его, хотя он довольно сломан из-за того, что я пробовал разные вещи, но я думаю, что он передает общую идею. Надеюсь, кто-то сможет понять это и объяснить мне, что я делаю ужасно неправильно (>. <) Я был бы рад предоставить больше информации, разъяснений и т. Д., Если я пропустил что-то важное! </p>
Спасибо!