Я пытаюсь проанализировать XML файл на С# с помощью Visual Studio и показать данные в ListBox, но я не знаю, как его разобрать, когда я имею дело с вложенным XML файлом.
Это код из файла XML:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE root [
<!ELEMENT root (Persons*)>
<!ELEMENT Persons (name)>
<!ELEMENT IsMale (#PCDATA)>
<!ELEMENT Age (#PCDATA)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT LikedPerson (name)>
]>
<root>
<Persons name ="Bob">
<IsMale>true</IsMale>
<Age>30</Age>
<LikedPerson name ="Iulia">
<IsMale>false</IsMale>
<Age>32</Age>
</LikedPerson>
</Persons>
</root>
Код, который я написал на С#, успешно возвращает мне только имя, пол и возраст для каждого человека, но я не знаю, как писать, чтобы показать мне также person_liked:
private void LoadPersons()
{
XmlDocument doc = new XmlDocument();
doc.Load("Baza_de_cunostinte.xml");
foreach (XmlNode node in doc.DocumentElement)
{
string name = node.Attributes[0].Value;
int age = int.Parse(node["Age"].InnerText);
bool isMale = bool.Parse(node["IsMale"].InnerText);
// Persons likedPerson.name = Persons.node.Attributes[0].Value ?
// .....
listBox.Items.Add(new Persons(name, age, isMale, likedPerson));
}
}
private void listBox_SelectedIndexChanged(object sender, EventArgs e)
{
if (listBox.SelectedIndex != -1)
{
propertyGrid1.SelectedObject = listBox.SelectedItem;
}
}
Это определение Person.cs:
class Persons
{
public string Name { get; private set; }
public int Age { get; private set; }
public bool IsMale { get; private set; }
public Persons LikedPerson { get; private set; }
public Persons(string name, int age, bool isMale, Persons likedPerson)
{
Name = name;
Age = age;
IsMale = isMale;
LikedPerson = likedPerson;
}
}