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


Zobrazeno 7 zpráv z 7.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Bylo by celkem dobrý kdyby jsi sem dal i ten objekt, kterej chceš převést do XML
Ten objekt právě potřebuji nejdříve nějak udělat a abych se přiznal, tak nevím jak by měl vypadat, aby udělal to co má. Původně se předávalo už děsných 80 parametrů což se mi nelíbí, takže se to snažím narvat do objektu. V tom původním bylo zajistěno, že budou jenom 2 výskyty a všechna data se posílala, takže zapsat to PLP nebyl problém, ale právě bych rád to měl přes objekt, ale nevím přesně jak to udělat. Jestli třeba slovník, který bude vypadat následovně: Dictionary<int, List<objektDat>> by byl na to vhodný to právě nevím.
Nemáš teda aspoň nějakou reálnou ukázku toho XML, kterej by jsi mohl zveřejnit? Protože z toho co jsi zveřejnil nic moc nevykoukám...
Zde je ukázka toho čeho chci docílit:
<PLP>
<Mnozstvi>2</Mnozstvi>
<Navod>1-1-1</Navod>
<Uhrada>PACIENT</Uhrada>
<HVLPReg>
<Kod>0145180</Kod>
<ATC>R06AE09</ATC>
<Nazev>ZENARO</Nazev>
<Forma>TBL FLM</Forma>
<Sila>5MG</Sila>
<CestaPodani>POR</CestaPodani>
<Baleni>90 II</Baleni>
</HVLPReg>
<ZadankaZP>1234567</ZadankaZP>
<ID_LP_Zdroj>1</ID_LP_Zdroj>
</PLP>
<PLP>
<Mnozstvi>1</Mnozstvi>
<Navod>2-1-1</Navod>
<Uhrada>ZAKLADNI</Uhrada>
<HVLPReg>
<Kod>0180087</Kod>
<ATC>R03AK07</ATC>
<Nazev>SYMBICORT TURBUHALER 200 MIKROGRAMŮ/ 6 MIKROGRAMŮ/ INHALACE</Nazev>
<Forma>INH PLV</Forma>
<Sila>160MCG/4,5MCG</Sila>
<CestaPodani>INH</CestaPodani>
<Baleni>1X120DÁV</Baleni>
</HVLPReg>
<ZadankaZP>1234566</ZadankaZP>
<ID_LP_Zdroj>2</ID_LP_Zdroj>
</PLP>
Nakonec jsem vytvořil slovník, kde klíč je pouze index, abych věděl kolik PLP sekcí tam bude a jeho hodnota je List<DataLeku>, která obsahují všechny potřebné informace. S tím by snad problém být neměl, ale zase jsem narazil na to, že vytvořím v XML element PLP a potom mám problém:
leky.Select(kv => new XElement("PLP",
kv.Value.Select(nv =>
AddElement(true, "Mnozstvi", nv.Mnozstvi, 3),
AddElement(true, "Navod", , 80),
Protože se potřebuji dostat dostat do listu a to nevím jak toho momentálně docílím.
class PLP
{
public int Mnozstvi { get; set; }
public string Navod { get; set; }
public string Uhrada { get; set; }
public HVLPReg HVLPReg { get; set; }
public string Zadanka { get; set; }
public string Zdroj { get; set; }
}
class HVLPReg
{
public string Kod { get; set; }
public string ATC { get; set; }
public string Nazev { get; set; }
public string Forma { get; set; }
public string Sila { get; set; }
public string CestaPodani { get; set; }
public string Baleni { get; set; }
}
var res = XDocument.Parse(nejakeXML).Elements("PLP").Select(plp =>
new PLP
{
Mnozstvi = int.Parse(plp.Element("Mnozstvi").Value),
Navod = plp.Element("Navod").Value,
Uhrada = plp.Element("Uhrada").Value,
HVLPReg = new HVLPReg
{
Kod = plp.Element("HVLPReg").Element("Kod").Value,
ATC = plp.Element("HVLPReg").Element("ATC").Value,
Nazev = plp.Element("HVLPReg").Element("Nazev").Value,
Forma = plp.Element("HVLPReg").Element("Forma").Value,
Sila = plp.Element("HVLPReg").Element("Sila").Value,
CestaPodani = plp.Element("HVLPReg").Element("CestaPodani").Value,
Baleni = plp.Element("HVLPReg").Element("Baleni").Value,
},
Zadanka = plp.Element("ZadankaZP").Value,
Zdroj = plp.Element("ID_LP_Zdroj").Value
}).ToList();
var doc = new XDocument(res.Select(plp => new XElement("plp",
new XElement("Mnozstvi", plp.Mnozstvi),
new XElement("Navod", plp.Navod),
new XElement("Uhrada", plp.Uhrada),
new XElement("HVLPReg",
new XElement("Kod", plp.HVLPReg.Kod),
new XElement("ATC", plp.HVLPReg.ATC),
new XElement("Nazev", plp.HVLPReg.Nazev),
new XElement("Forma", plp.HVLPReg.Forma),
new XElement("Sila", plp.HVLPReg.Sila),
new XElement("CestaPodani", plp.HVLPReg.CestaPodani),
new XElement("Baleni", plp.HVLPReg.Baleni)
),
new XElement("ZadankaZP", plp.Zadanka),
new XElement("ID_LP_Zdroj", plp.Zdroj)
)).ToArray());
No asi takhle, ale netestoval jsem to...
Moc děkuji, Tento způsob zápisu se zdá skvělý a rapidně mi ubylo
vstupních parametrů 
Zobrazeno 7 zpráv z 7.