Úvod HTML CSS PHP MySQL JavaScript
soubory

Práce se soubory

Jmenný prostor pro práci se soubory je using System.IO pro soubory txt a csv a using System.Xml pro soubory xml.

Umístnění souboru

Soubory, které aplikace vytváří nebo přepisuje by měli být umístněný na místě na to určeném. Ve windows je to složka AppData . Každý uživatelský účet má tuto složku vlastní (C:\Users\vase_jmeno\AppData\) a proto pokud se soubor vytváří nebo přepisuje, tak jen v aktivním účtu. Toto umožňuje různé nastavení aplikace pro různé uživatele. Pokud se data ukládají do složky s aplikací a program je nainstalován ve složce program files windows zabrání zápisu a aplikace spadne. Toto lze obejít tím, že aplikaci spustíme jako správce.

Ošetření chyb

Při práci se soubory často dochází k chybovým stavům (soubor neexistuje, nejde modifikovat, je jen pro čtení, vypnutá tiskárna), které by bez ošetření vyhodily chybu a tím pád programu. Program můžeme ošetřit podmínkami (IF)) nebo pomocí výjimky blokem (TRY-CATCH). První způsob se hodí pro jednoduchou kontrolu např. jedné proměnné. Druhým způsobem lze kontrolovat celý blok nebezpečného kódu. Souborové operace mohou vyvolat mnoho výjimek, a proto se soubory doporučuje vždy pracovat v (TRY-CATCH) bloku.

Vytvoření, uložení a čtení souboru TXT

Soubor se musí před jeho použitím vytvořit nebo otevřít a po zápisu nebo čtení z něho zavřít.
Pokud soubor neexistuje, vytvoří se. Pokud existuje, bude přepsán.
     private void button1_Click(object sender, EventArgs e)
        {
            string cesta = "";
            StreamWriter radky = null;
            try
            {
                cesta = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "VytvořenýAdresář");//nastaví cestu   
                if (!Directory.Exists(cesta))//pokud adresář neexistuje vytvoří ho 
                    Directory.CreateDirectory(cesta);

                radky = new StreamWriter(Path.Combine(cesta, "pokus.txt"));//vytvoří nebo otevře soubor 

                radky.WriteLine("První");//zapíše do řádků 
                radky.WriteLine("Druhý");
                radky.WriteLine("Atd.");
                radky.Flush();           //vyčistí buffer  

            }

            catch (Exception g)
            {
                MessageBox.Show("Nastala výjimka" + g.Message);
            }
            finally
            {    
                if(radky!=null)
                   radky.Close();           //soubor zavře 
            }
        }
    
Zápis do souboru pomocí using, který soubor otevře a zavře sám. Pokud soubor neexistuje, vytvoří se. Pokud existuje, bude přepsán.
        private void button3_Click(object sender, EventArgs e)
        {
            string cesta = "";
             
            try
            {
               
                cesta = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "VytvořenýAdresář");//nastaví cestu  
                if (!Directory.Exists(cesta))//pokud adresář neexistuje vytvoří ho
                    Directory.CreateDirectory(cesta);

                using (StreamWriter radky = new StreamWriter(Path.Combine(cesta, "pokus.txt")))//vytvoří nebo otevře soubor 
                { 
                    radky.WriteLine("První");//zapíše do řádků  
                    radky.WriteLine("Druhý");
                    radky.WriteLine("Atd.");
                    radky.Flush();           //vyčistí buffer 
                }                            // sám soubor zavře  
            }

            catch (Exception g)
            {
                MessageBox.Show("Nastala výjimka" + g.Message);
            }
          
        }
    
Připsání textu do existujícího souboru se docílí pomocí 2. parametru konstruktoru StreamWriter
       private void button4_Click(object sender, EventArgs e)
        {
            string cesta = "";

            try
            {

                cesta = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "VytvořenýAdresář");//nastaví cestu 
                if (!Directory.Exists(cesta))//pokud adresář neexistuje vytvoří ho
                    Directory.CreateDirectory(cesta);

                using (StreamWriter radky = new StreamWriter(Path.Combine(cesta, "pokus.txt"),true))// otevře soubor a začne do něho přidávat nové řádky 
                {
                    radky.WriteLine("další");//zapíše do řádků  
                    radky.WriteLine("a znovu");
                    radky.WriteLine("Atd.");
                    radky.Flush();           //vyčistí buffer  
                }                            // sám soubor zavře      
            }

            catch (Exception g)
            {
                MessageBox.Show("Nastala výjimka" + g.Message);
            }
        }
    
Čtení ze souboru.
       private void button4Nacti_Click(object sender, EventArgs e)
        {
            string cesta = "";
            string vypis="nic";
            try
            {

                cesta = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "VytvořenýAdresář"); //nastaví cestu   


                using (StreamReader radky = new StreamReader(Path.Combine(cesta, "pokus.txt"))) // otevře soubor    
                {
                    vypis = radky.ReadToEnd(); //čte vše   
                }                             // sám soubor zavře  
            }

            catch (Exception g)
            {
                MessageBox.Show("Nastala výjimka" + g.Message);
            }
            finally
            {
                textBox1.Text = vypis;
            }
        }
    

Formát CSV

CSV je textový soubor, kde hodnoty jsou odděleny středníkem, čárkou nebo jakýmkoliv znakem. Tento znak slouží jako separátor pro oddělení jednotlivých částí textu v souboru.
Uložení do csv.
 
     private void button5CSV_Click(object sender, EventArgs e)
        {
            string cesta = "";

            try
            {

                cesta = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "VytvořenýAdresář");  //nastaví cestu 
                if (!Directory.Exists(cesta))//pokud adresář neexistuje vytvoří ho
                    Directory.CreateDirectory(cesta);

                using (StreamWriter radky = new StreamWriter(Path.Combine(cesta, "pokus.csv"), true))  //vytvoří nebo otevře soubor a řádky připíše  
                {
                    string[] zapis = { textBox2csv.Text, textBox3csv.Text, textBox4csv.Text };
                    string radek = String.Join(";", zapis);  //vytvoří řádek se středníky 
                    radky.WriteLine(radek);  //zapíše do řádků   
                    radky.Flush();             //vyčistí buffer  
                }                              // sám soubor zavře 
            }

            catch (Exception g)
            {
                MessageBox.Show("Nastala výjimka" + g.Message);
            }
        }
   
Načtení souboru.
      private void button5načteniCSV_Click(object sender, EventArgs e)
        {
            string cesta = "";

            try
            {

                cesta = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "VytvořenýAdresář"); //nastaví cestu    
              

                using (StreamReader radky = new StreamReader(Path.Combine(cesta, "pokus.csv"))) // otevře soubor  
                {
                    string s;
                   
                    while ((s = radky.ReadLine()) != null)  // čte řádek po řádku    
                    {
                        string[] rozdeleno = s.Split(';'); // rozdělí string řádku podle středníků    
                        string jmeno = rozdeleno[0];
                        string prijmeni = rozdeleno[1];
                        string vek = rozdeleno[2];
                        label1csv.Text +=jmeno +"\n";
                        label2csv.Text += prijmeni + "\n";
                        label3csv.Text += vek + "\n";
                       
                    }
                }                             // sám soubor zavře  
            }

            catch (Exception g)
            {
                MessageBox.Show("Nastala výjimka" + g.Message);
            }
        }
   

Formát XML

Formát XML se dá využít na ukládání nejrůznějších typů dat s prakticky jakoukoliv strukturou. Lze ho použít na ukládaní jednoduchého seznamu až po menší databáze. S XML soubory umí pracovat skoro každý systém a proto se velmi často používá k výměně dat mezi různými systémy. Jeho výhoda je, že není vázán na žádný software, ani operační systém.

Syntaktická pravidla XML

Syntaktická pravidla XML jsou velice jednoduchá.
Tagy používané v HTML dokumentu jsou předdefinované(<p>, <h1>, atd.). V XML si každý vytvoří tagy vlastní, které si může libovolně pojmenovat (nedoporučuje se používat diakritika).
První řádka v dokumentu definuje verzi XML a kódování znaků.
První element v dokumentu představuje rodičovský (kořenový) element. Další elementy jsou potomci rodiče (elementy podřízené rodiči). Tyto elementy můžou mít potomky atd.

<rodic>
  <potomek>
    <podpotomek>...</podpotomek>
  </potomek>
</rodic>
Elementy v XML musí mít uzavírací tag.
Tagy v XML rozlišují velká a malá písmena.
XML dokument musí mít hlavní element.
Atributy v XML musí být uzavřeny do uvozovek
 <polozka id="5" nazev="rohlík"  mnozstvi="50" cena="0,90" /> 
       
XML zachovává tzv. bílé znaky.
Komentář v XML napíšete stejně jako v HTML.
 <!-- Toto je komentář -->  
       
Název XML elementu musí dodržovat tato pravidla:
  • Název může obsahovat písmena, čísla i ostatní znaky.
  • Název nesmí začínat číslem nebo interpunkčním znaménkem.
  • Název nesmí začínat písmeny xml (popř. XML, Xml, atd.).
  • Název nesmí obsahovat mezery.
  • Místo mezery použíjte podtržítko.

Vytvoření a uložení dat do souboru XML.
      private void button1_Click(object sender, EventArgs e)
        {
            string cesta = "";

            try
            {

                cesta = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "VytvořenýAdresář");  //nastaví cestu 
                if (!Directory.Exists(cesta))  //pokud adresář neexistuje vytvoří ho 
                    Directory.CreateDirectory(cesta);

                XmlWriterSettings settings = new XmlWriterSettings();
                settings.Indent = true;   //nastavit odsazování 

                using (XmlWriter xml = XmlWriter.Create(Path.Combine(cesta, "pokus.xml"), settings))  //vytvoří soubor  "pokus.xml"     
                {
                    xml.WriteStartDocument();   // hlavička 
                    xml.WriteStartElement("objednavky");   // otevření kořenového elementu   

                      // zápis první objednávky  

                    xml.WriteStartElement("objednavka");  //vytvoří otvírací element  
                    xml.WriteAttributeString("ID", "1");
                    xml.WriteAttributeString("stav", "příjato");
                    xml.WriteElementString("jmeno", "Jan");    //jako otvírací element, ale bez ukončovacího  
                    xml.WriteElementString("prijmeni", "Novák");
                    xml.WriteStartElement("polozky");
                    xml.WriteStartElement("polozka");
                    xml.WriteAttributeString("id", "5");
                    xml.WriteAttributeString("nazev", "rohlík");
                    xml.WriteAttributeString("mnozstvi", "50");
                    xml.WriteAttributeString("cena", "0,90");
                    xml.WriteEndElement();
                    xml.WriteStartElement("polozka");
                    xml.WriteAttributeString("id", "9");
                    xml.WriteAttributeString("nazev", "houska");
                    xml.WriteAttributeString("mnozstvi", "20");
                    xml.WriteAttributeString("cena", "3");
                    xml.WriteEndElement();
                    xml.WriteStartElement("polozka");
                    xml.WriteAttributeString("id", "12");
                    xml.WriteAttributeString("nazev", "chleba");
                    xml.WriteAttributeString("mnozstvi", "8");
                    xml.WriteAttributeString("cena", "25");
                    xml.WriteEndElement(); 
                    xml.WriteEndElement();
                    xml.WriteStartElement("sleva");
                    xml.WriteEndElement();
                    xml.WriteEndElement();  //uzavírací element  xml.WriteStartElement("objednavka") 

                      // zápis druhé objednávky  


                    xml.WriteStartElement("objednavka");
                    xml.WriteAttributeString("ID", "2");
                    xml.WriteAttributeString("stav", "odesláno");
                    xml.WriteElementString("jmeno", "Josef");
                    xml.WriteElementString("prijmeni", "Malý");
                    xml.WriteStartElement("polozky");
                    xml.WriteStartElement("polozka");
                    xml.WriteAttributeString("id", "235");
                    xml.WriteAttributeString("nazev", "sekačka");
                    xml.WriteAttributeString("mnozstvi", "1");
                    xml.WriteAttributeString("cena", "5999");
                    xml.WriteEndElement();
                    xml.WriteEndElement();
                    xml.WriteStartElement("sleva");
                    xml.WriteAttributeString("typ", "akce");
                    xml.WriteAttributeString("procent", "10");
                    xml.WriteEndElement();

                    xml.WriteEndElement();   // uzavření kořenového elementu   
                    xml.WriteEndDocument();   // konec dokument     
                    xml.Flush();
                }                        // sám soubor zavře        
            }

            catch (Exception g)
            {
                MessageBox.Show("Nastala výjimka" + g.Message);
            }
        }
    
Vytvořený XML soubor.
    <?xml version="1.0" encoding="utf-8"?>
<objednavky>
  <objednavka ID="1" stav="příjato">
    <jmeno>Jan</jmeno>
    <prijmeni>Novák</prijmeni>
    <polozky>
      <polozka id="5" nazev="rohlík"  mnozstvi="50" cena="0,90" />
      <polozka id="9" nazev="houska"  mnozstvi="20" cena="3" />  
      <polozka id="12" nazev="chleba"  mnozstvi="8" cena="25" />
    </polozky>
    <sleva />
  </objednavka>
  <objednavka ID="2" stav="odesláno">
    <jmeno>Josef</jmeno>
    <prijmeni>Malý</prijmeni>
    <polozky>
      <polozka id="235" nazev="sekačka" cena="5999" />
    </polozky>
    <sleva typ="akce" procent="10" />
  </objednavka>
</objednavky>
    

Načtení XML souboru SAXem.

Čte soubor po řádcích.
      private void vypisXML_Click(object sender, EventArgs e)
        {
            string cesta = "";
            string vypis = "";
            string element = "";
            try
            {

                cesta = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "VytvořenýAdresář");//nastaví cestu   


                using (XmlReader xmlSoubor = XmlReader.Create((Path.Combine(cesta, "pokus.xml"))))// otevře soubor pro čtení   
                {
                    while (xmlSoubor.Read())//čte soubor řádek po řádku - vrací false pokud je vše přečteno  
                    {

                        if (xmlSoubor.NodeType == XmlNodeType.Element)
                        {
                            element = xmlSoubor.Name;
                            vypis += "\n" + xmlSoubor.Name;        //připíše název aktuálního elementu   
                            if (xmlSoubor.Name == "objednavka")
                            {
                                vypis += " číslo" + xmlSoubor.GetAttribute("ID"); //připíše atribut id  
                                vypis += "\n                    stav " + xmlSoubor.GetAttribute("stav");
                            }
                            if (xmlSoubor.Name == "polozka")
                            {
                                vypis += " číslo" + xmlSoubor.GetAttribute("id"); 
                                vypis +="  "+xmlSoubor.GetAttribute("nazev");
                                vypis += " množství" + xmlSoubor.GetAttribute("mnozstvi");
                                vypis += "  cena" + xmlSoubor.GetAttribute("cena");
                            }
                            if (xmlSoubor.Name == "sleva")
                            {
                                if (xmlSoubor.HasAttributes)// pokud má element atributy, tak je vypíše   
                                {
                                    vypis += "  " + xmlSoubor.GetAttribute("typ");
                                    vypis += "  " + xmlSoubor.GetAttribute("procent") + "%";
                                }
                            }

                        }
                        if (xmlSoubor.NodeType == XmlNodeType.Text)//připíše hondnotu elementu       
                        {
                           
                            switch (element)
                            {
                                case "jmeno":
                                    vypis += " " + xmlSoubor.Value;
                                    break;
                                case "prijmeni":
                                    vypis += " " + xmlSoubor.Value;
                                    break;
                            }
                        }
                        if (xmlSoubor.NodeType==XmlNodeType.EndElement && xmlSoubor.Name=="objednavka")//konec objednávky 
                        {
                            vypis += "\n\n\n";
                        }
                    }
                }                            // sám soubor zavře    
            }

            catch (Exception g)
            {
                MessageBox.Show("Nastala výjimka" + g.Message);
            }
            finally
            {
                labelVypisXML.Text = vypis;
            }
        }
    

Načtení XML souboru DOMem

DOM je vlastně objektový přístup k XML souboru. Lze libovolně přistupovat k libovolné části XML souboru.
Objekt se vytvoří:
  XmlDocument xmlDocument = new XmlDocument(); 
        
A načte do paměti:
  private void XML_Load(object sender, EventArgs e)
        {
           
            string cesta = "";
            try
            {

                cesta = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "VytvořenýAdresář", "pokus.xml");   //nastaví cestu 

                xmlDocument.Load(cesta);   //načte XML soubor 
                foreach (XmlNode s in xmlDocument.SelectNodes("/objednavky/objednavka"))      //prochází elementy podle podle zadané cesty 
                {
                    listBoxObjednavky.Items.Add("Objednávka č. " + s.Attributes["ID"].Value);
                }

            }
            catch (Exception g)
            {
                MessageBox.Show("Nastala výjimka" + g.Message);
            }
        }
        
A čteme co chceme:
           private void listBoxObjednávky_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listBoxObjednavky.SelectedIndex == -1) return;  //pokud není nic vybráno, vyskočí ven    
            XmlNode objednavka = xmlDocument.SelectNodes("/objednavky/objednavka")[listBoxObjednavky.SelectedIndex]; //načte objednávku podle indexu   


            textBoxJmeno.Text = objednavka.SelectSingleNode("jmeno").InnerText; //načte jméno    
            textBoxPrijmeni.Text = objednavka.SelectSingleNode("prijmeni").InnerText; //načte příjmení  
          

            double cena = 0;
            listViewPolozky.Items.Clear();

            foreach (XmlNode s in objednavka.SelectNodes("polozky/polozka"))
            {

                ListViewItem polozky = new ListViewItem(); //vytvoří položku ListView 

                polozky.Text = s.Attributes["id"].Value; //načte první hodnotu      
                polozky.SubItems.Add(s.Attributes["nazev"].Value); //přidá druhou hodnotu   
                polozky.SubItems.Add(s.Attributes["mnozstvi"].Value); //přídá třetí hodnotu    
                try
                {
                    polozky.SubItems.Add(objednavka.SelectSingleNode("sleva").Attributes["procent"].Value); //načte čtvrtou hodnotu  
                }
                catch
                {
                    polozky.SubItems.Add("0");
                }
                double cenaZaKus=double.Parse(s.Attributes["cena"].Value);
                polozky.SubItems.Add(cenaZaKus.ToString("c")); //přidá pátou hodnotu zformátovanou na měnu   

                listViewPolozky.Items.Add(polozky);  //přidá  položku do seznamu   

                cena += cenaZaKus * double.Parse(s.Attributes["mnozstvi"].Value);
            }
          
            labelStav.Text = objednavka.Attributes["stav"].Value;
            labelCena.Text = cena.ToString("c");
        }
        

Vytvoření XML souboru DOMem

           if (ulozto.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    XmlDocument dokument = new XmlDocument();// vytvoření souboru    
                    XmlDeclaration xmlDeklarace = dokument.CreateXmlDeclaration("1.0", "UTF-8", null); //deklarace xml    
                    XmlElement adr = dokument.DocumentElement;
                    dokument.InsertBefore(xmlDeklarace, adr); // vytvoření deklarace    
                    string hlavickaText = "korenovyElement";
                    XmlElement hlavicka = dokument.CreateElement(hlavickaText); // vytvoření kořenového elementu   
                    dokument.AppendChild(hlavicka);  // pojmenování elementu    
                    
                    dokument.Save(ulozto.FileName); //vytvoření a uložení xml         

                }
                catch (Exception g)
                {
                    MessageBox.Show(g.Message);    // pokud nastane chyba vypíše ji   
                }
            }
        

Přidání a uložení do XML souboru DOMem

      private void buttonPridej_Click(object sender, EventArgs e)
        {
            XmlDocument novy = new XmlDocument();
            novy.Load(cesta);// načtení souboru                     
            XmlNode element = novy.DocumentElement; //načte hlavní element    
            XmlElement objednavka = novy.CreateElement("objednavka");//vytvoří element  
            XmlAttribute ID = novy.CreateAttribute("ID"); //vytvoření atributu     
            XmlAttribute stav = novy.CreateAttribute("stav"); //vytvoření atributu  

            ID.Value = idint.ToString();//přizazení hodnoty atributu    
            idint++;
            stav.Value = textBoxStav.Text;//přizazení hodnoty atributu  

            objednavka.Attributes.Append(ID);//přidání atributu k elementu  
            objednavka.Attributes.Append(stav);//přidání atributu k elementu 
            element.AppendChild(objednavka);//přidání elementu do souboru    

            XmlElement jmeno = novy.CreateElement("jmeno");//vytvoří element  
            jmeno.InnerText = textBoxJmeno.Text;//nastaví text elementu      
            objednavka.AppendChild(jmeno);//přidání elementu do souboru      
            XmlElement prijmeni = novy.CreateElement("prijmeni");//vytvoří element   
            prijmeni.InnerText = textBoxPrijmeni.Text;//nastaví text elementu       
            objednavka.AppendChild(prijmeni);//přidání elementu do souboru          

            XmlElement polozky = novy.CreateElement("polozky");//vytvoří element    
            objednavka.AppendChild(polozky);//přidání elementu do souboru         

            XmlElement polozka = novy.CreateElement("polozka");//vytvoří element    
            XmlAttribute id = novy.CreateAttribute("id"); //vytvoření atributu       
            XmlAttribute nazev = novy.CreateAttribute("nazev"); //vytvoření atributu  
            XmlAttribute mnozstvi = novy.CreateAttribute("mnozstvi"); //vytvoření atributu
            XmlAttribute cena = novy.CreateAttribute("cena"); //vytvoření atributu  
            id.Value = textBoxid.Text;
            nazev.Value = textBoxNazev.Text;
            mnozstvi.Value = textBoxMnozstvi.Text;
            cena.Value = textBoxCena.Text;
            polozka.Attributes.Append(id);//přidání atributu k elementu      
            polozka.Attributes.Append(nazev);//přidání atributu k elementu   
            polozka.Attributes.Append(mnozstvi);//přidání atributu k elementu 
            polozka.Attributes.Append(cena);//přidání atributu k elementu   
            polozky.AppendChild(polozka);//přidání elementu do souboru      

            XmlElement sleva = novy.CreateElement("sleva");//vytvoří element 
            objednavka.AppendChild(sleva);//přidání elementu do souboru     

            novy.Save(cesta);//uložení souboru    
        }
    

Vložení nového elementu do určitého elementu - jiný způsob

    XDocument myDoc = XDocument.Load(cesta);
                    XElement way = myDoc.Root;

                    way.Element("Cesta").Add(new XElement("way",
                               new XElement("pěšky", 8),
                               new XElement("kolmo", 4),
                               new XElement("autem", 1)
                    ));
                    myDoc.Save(cesta);
 
    

Editace XML souboru DOMem

 
       private void buttonUloz_Click(object sender, EventArgs e)
        {
            XmlDocument edituj = new XmlDocument();
            edituj.Load(cesta); // načtení souboru    

            //způsob 1.   

            XmlNodeList list = edituj.SelectNodes("/objednavky/objednavka");
            foreach (XmlNode s in list)
            {
                if (s.Attributes["ID"].Value == idint.ToString())//vybírá se podle ID 1,2,3 atd.    
                {
                    s.Attributes["stav"].Value = textBoxStav.Text;
                    s.SelectSingleNode("jmeno").InnerText = textBoxJmeno.Text;
                    s.SelectSingleNode("prijmeni").InnerText = textBoxPrijmeni.Text;

                    XmlNode polozka = s.SelectSingleNode("polozky/polozka");
                    polozka.Attributes["id"].Value = textBoxid.Text;
                    polozka.Attributes["nazev"].Value = textBoxNazev.Text;
                    polozka.Attributes["mnozstvi"].Value = textBoxMnozstvi.Text;
                    polozka.Attributes["cena"].Value = textBoxCena.Text;
                    edituj.Save(cesta);
                }
            }



             //způsob 2.    
            XmlNode list1 = edituj.SelectNodes("/objednavky/objednavka")[idint - 1];//vybírá se podle objektu 0,1,2 atd.     
            list1.Attributes["stav"].Value = textBoxStav.Text;
            list1.SelectSingleNode("jmeno").InnerText = textBoxJmeno.Text;
            list1.SelectSingleNode("prijmeni").InnerText = textBoxPrijmeni.Text;

            XmlNode polozka1 = list1.SelectSingleNode("polozky/polozka");
            polozka1.Attributes["id"].Value = textBoxid.Text;
            polozka1.Attributes["nazev"].Value = textBoxNazev.Text;
            polozka1.Attributes["mnozstvi"].Value = textBoxMnozstvi.Text;
            polozka1.Attributes["cena"].Value = textBoxCena.Text;
            edituj.Save(cesta);   
        }
    

Mazání XML souboru DOMem

      private void button1_Click(object sender, EventArgs e)
        {
            XmlDocument edituj = new XmlDocument();
            edituj.Load(cesta);  // načtení souboru      
            XmlElement element = edituj.DocumentElement;    //vytvoření stromu hlavních elementů    

              //způsob 1. 
            XmlNodeList list = edituj.SelectNodes("/objednavky/objednavka");
            foreach (XmlNode s in list)
            {
                if (s.Attributes["ID"].Value == idint.ToString())  //vybírá se podle ID 1,2,3 atd.     
                {
                    element.RemoveChild(s);   // mazání elementu    
                    edituj.Save(cesta);
                }
            }


              //způsob 2. 
            XmlNode list1 = edituj.SelectNodes("/objednavky/objednavka")[idint - 1];  //vybírá se podle objektu 0,1,2 atd.      
            element.RemoveChild(list1);    // mazání elementu    
            edituj.Save(cesta);
        }
    
pravy Ascii tabulka
Barvy
Klávesové zkratky


©2013-2021 Trojklik.8u.cz Autor: Vašek D.