我正在遍历包含Gnomes(/ GnomeArmy/Gnome)的XML节点列表,当我迭代时,我想遍历属于gnome的子项列表。迭代XML节点
目前我已经为这两个侏儒挑选了第一个Gnome的孩子,这是不正确的,因为他们都有自己的孩子。
即Gnome1孩子是杰西卡&尼克,侏儒2孩子们也是杰西卡&尼克(这是错误的)。
谢谢。
代码:
public static List<Gnome> ReadGnomes(string file)
{
List<Gnome> gnomeList = new List<Gnome>();
XmlDocument gnomeFile = new XmlDocument();
gnomeFile.Load(file);
// Get list of Gnomes
XmlNodeList nodes = gnomeFile.SelectNodes(string.Format("/GnomeArmy/Gnome"));
Gnome gnome = null;
foreach (XmlNode node in nodes)
{
gnome = new Gnome();
// General Attributes
gnome.Name = node["Name"].InnerText;
gnome.Colour = node["Colour"].InnerText;
XmlNodeList children = node.SelectSingleNode("/GnomeArmy/Gnome/Children").ChildNodes;
foreach (XmlNode child in children)
{
if (child.Name == "Child")
{
gnome.Children = gnome.Children + " " + child.InnerText;
}
}
gnomeList.Add(gnome);
}
return gnomeList;
}
XML:
<GnomeArmy>
<Gnome>
<Name>Harry</Name>
<Colour>Blue</Colour>
<Children>
<Child>Jessica</Child>
<Child>Nick</Child>
</Children>
</Gnome>
<Gnome>
<Name>Mathew</Name>
<Colour>Red</Colour>
<Children>
<Child>Lisa</Child>
<Child>James</Child>
</Children>
</Gnome>
</GnomeArmy>