Ja dass du mit .NET und C# arbeitest, ist mir klar.
Aber da selektiert man mit XPATH die Nodes oder den Node, die/den man haben will und arbeitet sich dann mit foreach durch die Nodelist
Folgender Code ist absolut sicher,
egal wie die
XML-Datei aussieht:
Code:
string name = "Testkategorie 1";
XmlDocument XMLDoc = new XmlDocument();
XMLDoc.LoadXml(textBox1.Text);
List<ProductItem> prodList = new List<ProductItem>();
XmlNodeList NodeList = XMLDoc.SelectNodes("//Catalog/Categories/Category[@name=\"" + name + "\"]/items/item");
foreach (XmlNode ItemNode in NodeList)
{
ProductItem prodItem = new ProductItem();
XmlNode NodeAttr = ItemNode.Attributes.GetNamedItem("name");
if (NodeAttr != null)
{
prodItem.Name = NodeAttr.Value;
}
foreach (XmlNode ItemChildNode in ItemNode.ChildNodes)
{
switch (ItemChildNode.Name)
{
case "shortdescription": prodItem.ShortDescription = ItemChildNode.InnerText; break;
case "longdescription": prodItem.LongDescription = ItemChildNode.InnerText; break;
case "itemIdentifier": prodItem.ItemIdentifier = ItemChildNode.InnerText; break;
}
}
prodList.Add(prodItem);
}
da ich den Code selbst getestst habe, sind im Code einige Dinge, die ich dafür benötigt habe (textbox1, usw.)