Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Načítání z XML c#

Dobrý večer,
mám tento kod:

 while (vstup.Read())
            {
                vstup.MoveToElement();
                string jmeno = vstup.GetAttribute("Jméno");
                string prijimeni = vstup.GetAttribute("Přijímení");
                string ulice = vstup.GetAttribute("Ulice");
                int cislopopisne = Convert.ToInt32(vstup.GetAttribute("Číslo_Popisné"));
                string mesto = vstup.GetAttribute("Město");
                int psc = Convert.ToInt32(vstup.GetAttribute("PSČ"));
                int cisloOP = Convert.ToInt32(vstup.GetAttribute("Číslo_OP"));
                string seznam = vstup.GetAttribute("Seznam");
                Zakaznici zak = new Zakaznici(jmeno, prijimeni, ulice, cislopopisne, mesto, psc, cisloOP, seznam);
                Objednavky.Add(zak);
            }

Problém je v tom, že po načtení všech dat proběhne ještě jednou a načte prázdné hodnoty.
Děkuji, Petr

Předmět Autor Datum
vstup.Read() nejspíš přečte něco dalšího. Ovšem co a proč, se z tohohle kousku kódu poznat nedá.
Wikan 03.01.2014 22:45
Wikan
Ukládám to pomocí tohoto kodu: public bool ulozitxml(string jmenoSouboru) //uložit Xml { XmlWriter…
Petr Nový 03.01.2014 22:52
Petr Nový
A jak vypadá obsah toho XML souboru?
Wikan 03.01.2014 22:58
Wikan
<Půjčené_zboží><Objednávka Jméno="Petr" Přijímení="Nový" Ulice="Test" Číslo_Popisné="12345" Město="T… nový
Petr Nový 03.01.2014 23:00
Petr Nový
Co přesně znamená, že to proběhne ještě jednou? Proběhne to dvakrát v rámci while cyklu? Nebo se dva… nový
Wikan 03.01.2014 23:05
Wikan
Jednou navíc proběhne ten while cyklus. nový
Petr Nový 03.01.2014 23:06
Petr Nový
Jsi si jistý, že nejprv přečte data a pak prázdný záznam? Není to naopak? nový
Wikan 03.01.2014 23:20
Wikan
Nejspíš máte pravdu. Nejprve se načte prázdný záznam a poté data. nový
Petr Nový 03.01.2014 23:24
Petr Nový
No tak to je jasné, nejdříve se přečte "Půjčené zboží" a pak teprve "Objednávka". nový
Wikan 03.01.2014 23:25
Wikan
Nevíte jak by se tomu dalo vyhnout? Děkuji za radu. nový
Petr Nový 03.01.2014 23:31
Petr Nový
Načítat pouze nody "Objednávka". nový
Wikan 03.01.2014 23:31
Wikan
Děkuju moc.! poslední
Petr Nový 03.01.2014 23:40
Petr Nový

Ukládám to pomocí tohoto kodu:

 public bool ulozitxml(string jmenoSouboru) //uložit Xml
        {
            XmlWriter vystup = new XmlTextWriter(jmenoSouboru, null);
            vystup.WriteStartDocument();
            vystup.WriteStartElement("Půjčené_zboží");
            foreach (Zakaznici zak in Objednavky)
            {
                vystup.WriteStartElement("Objednávka");
                vystup.WriteAttributeString("Jméno", zak.JakeJmeno);
                vystup.WriteAttributeString("Přijímení", zak.JakaPrijimeni);
                vystup.WriteAttributeString("Ulice", zak.JakaUlice);
                vystup.WriteAttributeString("Číslo_Popisné", zak.JakeCislopopisne);
                vystup.WriteAttributeString("Město", zak.JakeMesto);
                vystup.WriteAttributeString("PSČ", zak.JakePSC);
                vystup.WriteAttributeString("Číslo_OP", zak.JakeCisloOP);
                vystup.WriteAttributeString("Seznam", zak.JakySeznam);
                vystup.WriteEndElement();
            }
            vystup.WriteEndElement();
            vystup.WriteEndDocument();
            vystup.Close();
            return true;
        }

Zpět do poradny Odpovědět na původní otázku Nahoru