IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Jak vypsat data podle atributu z XML pomocí LINQ?

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
David Tilšer:21.8.2017 8:43

Zdravím vás,

pro někoho to bude hračka, já se nad tím trápím a nemůžu na to přijít. Mám např. takový XML soubor:

<?xml version="1.0" encoding="UTF-8"?>
<products>
   <product id="123">
      <something>1</something>
      <something>3</something>
   </product>
   <product id="456">
      <something>4</something>
      <something>5</something>
   </product>
</products>

A já potřebuji udělat metodu, které pošlu ID (např. 123) a na základě toho potřebuji vrátit v poli hodnoty "something" pro to ID. Takže v tomto příkladě pokud metodě pošlu ID 123, měla by vrátit 1 a 3. Pokud 456, měla by vrátit 4 a 5.
Jak to udělám, prosím?
Děkuji.

Odpovědět
21.8.2017 8:43
Odpočinek je pro slabochy.
Avatar
Odpovídá na David Tilšer
Michal Štěpánek:21.8.2017 12:30

mrkni sem
https://www.itnetwork.cz/…ni-xml-saxem
popř. na další články o XML zde na síti...

Nahoru Odpovědět
21.8.2017 12:30
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Shade
Člen
Avatar
Shade:21.8.2017 12:40
static void Parsing(int id)
        {
            XDocument readDoc = XDocument.Load("test.xml");
            List<string> vysledky = new List<string>();

            XElement elem = readDoc.Descendants("product").Where(x => x.Attribute("id").Value == id.ToString()).FirstOrDefault(); //Získá element product podle id

            foreach (var item in elem.Elements()) //Projede všechny child elementy
            {
                Console.WriteLine(item.Value);
                vysledky.Add(item.Value);
            }
        }

Například takto. Nebo XPath

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
21.8.2017 12:40
Talk is cheap. Show me the code.
Avatar
David Tilšer:21.8.2017 14:04

Díky moc Shade, to mi funguje.
Michal Štěpánek - to jsem procházel, ale nebyl jsem z toho schopen to udělat tak, aby mi to fungovalo.

Nahoru Odpovědět
21.8.2017 14:04
Odpočinek je pro slabochy.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.