Tak jsem dneska poprvé použil tuto moderní technologii. Podle tutoriálu jsem spáchal následující kód:
XDocument xmlDoc = XDocument.Load("Soubor.xml");
XNamespace ns = "...";
var tutorials = from tutorial in xmlDoc.Descendants(ns+"responsePackItem")
select new
{
state = tutorial.Attribute("state").Value,
};
foreach(var tutorial in tutorials)
{
if(tutorial.state=="ok")
{
XNamespace ns2 = "...";
var tutorials2 = from tutorial2 in xmlDoc.Descendants(ns2 + "producedDetails")
select new
{
number = tutorial2.Element(ns2 + "number").Value,
};
foreach (var enumerable in tutorials2)
{
listBox1.Items.Add(enumerable.number);
}
}else
{
XNamespace ns3 = "...";
var tutorials3 = from tutorial3 in xmlDoc.Descendants(ns3 + "responsePackItem")
select new
{
note = tutorial3.Attribute("note").Value,
};
foreach (var tutorial3 in tutorials3)
{
listBox1.Items.Add(tutorial3.note);
}
}
}
Tehle kód mi nepřijde že je zrovna OK. Má to vlastnědělat to že u prvku responsePackItem vyberu atribut state, pokud bude OK tak vyberu podprvek producedDetails a zobrazím hodnotu prvku number. Pokud bude state něco jiného tak chci zobrazit atribut note prvku responsePackItem. Zkoušel jsem to dát do jednoho LINQ dotazu, ale házelo že není nastavena instance objektu. V případě že to v případu OK nenašlo prvek note, který tam je jen když je state error. A obráceně, pokud byl state EROR tak to zase nenašlu atribut number. Můžete mi prosím někdo říct jak tyhle podmínky zavést už do výběrového dotazu? Díky