Witam.
Mam problem z nadpisaniem XMLa.
XML:
<?xml version="1.0" standalone="yes"?>
<opcje>
<serwer>wartosc1</serwer>
<folder>wartosc2</folder>
</opcje>
I chce z TestBox'a pobrać tekst i nadpisać wartosc1 i wartosc2. Ktoś pomoże ?
Witam.
Mam problem z nadpisaniem XMLa.
XML:
<?xml version="1.0" standalone="yes"?>
<opcje>
<serwer>wartosc1</serwer>
<folder>wartosc2</folder>
</opcje>
I chce z TestBox'a pobrać tekst i nadpisać wartosc1 i wartosc2. Ktoś pomoże ?
using System.Xml.Linq;
using System;
class Program {
static void Main() {
XElement xml = XElement.Load("plik.xml");
XElement elem1 = xml.Element("serwer");
XElement elem2 = xml.Element("folder");
Console.WriteLine(elem1.Value);
Console.WriteLine(elem2.Value);
elem1.Value = "serwer 2";
elem2.Value = "folder 2";
xml.Save("plik2.xml");
}
}
wszystko ładnie działało dopóki nie zmieniłem xml-a na:
<dane> <opcje> <serwer>wartość</serwer> <folder>wartość</folder> ... </opcje> ... </dane> XElement xml = XElement.Load("db/plik.xml");
XElement elem1 = xml.Element("serwer");
XElement elem2 = xml.Element("folder");
...
elem1.Value = textBox1.Text;
elem2.Value = textBox2.Text;
...
xml.Save("db/" + Form1.myIP + ".xml");
i przy linijce elem1.Value = textBox1.Text; wywala błąd:
Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.
bo w obiekcie nadrzędnym (dane) nie ma elementów "serwer" ani "folder" tylko jest "opcje".
XElement opcje = xml.Element("opcje");
XElement serwer = opcje.Element("serwer");