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.

Člen

Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
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.