C#: Einstellungen aus XML lesen

bootscreen

Grünschnabel
Nabend leute,

ich verzweifle seid einigen Stunden an so einer doofen XML-Datei.

Ich versuche in meinem Programm die werte aus 2 Listboxen und einem Textfeld in eine XML-Datei zu speichern (da es ja direkt keine INI-Datein mehr in C# gibt) und wieder einzulesen. Das Speichern geht auch ganz einfach mit folgendem Code:

Code:
            XmlTextWriter myXmlTextWriter = new XmlTextWriter(Application.StartupPath + "\\Settings.xml", System.Text.Encoding.UTF8);
            myXmlTextWriter.Formatting = Formatting.Indented;
            myXmlTextWriter.WriteStartDocument(true);
            myXmlTextWriter.WriteStartElement("Root");

            myXmlTextWriter.WriteStartElement("Settings");
            myXmlTextWriter.WriteElementString("Pfad", pfad);
            myXmlTextWriter.WriteEndElement();

            if (listBox1.Items.Count > 2)
            {
                myXmlTextWriter.WriteStartElement("Servers");
                
                for (int i = 2; i < listBox1.Items.Count; i++)
                {
                    myXmlTextWriter.WriteStartElement("Server");
                    myXmlTextWriter.WriteAttributeString("ID", i.ToString());
                    myXmlTextWriter.WriteElementString("Name", listBox1.Items[i].ToString());
                    myXmlTextWriter.WriteElementString("Adresse", listBox2.Items[i].ToString());
                    myXmlTextWriter.WriteEndElement();
                }
                myXmlTextWriter.WriteEndElement();
            }
            myXmlTextWriter.WriteEndElement();

            myXmlTextWriter.Flush();
            myXmlTextWriter.Close();

Ergebniss ist dann eine XML-Datei die wie folgt aussieht:
PHP:
<Root>
  <Settings>
    <Pfad>C:\</Pfad>
  </Settings>
  <Servers>
    <Server ID="2">
      <Name>Name 1</Name>
      <Adresse>Adresse 1</Adresse>
    </Server>
    <Server ID="3">
      <Name>Name 2</Name>
      <Adresse>Adresse 2</Adresse>
    </Server>
  </Servers>
</Root>

nur bekomme ich es einfach nicht hin das ich die Werte aus dieser XML-Datei wieder ins Programm schreibt (Pfad ins Textfeld, Servernamen in Listbox1, Serveradressen in Listbox2).

Hoffe ihr versteht mein Anliegen / Problem und könnt mir weiterhelfen.
 
Hallo bootscreen,

1. Dafür ist eigentlich das .NET-Forum zuständig.

2. Hast du die Probleme nur beim Zuweisen der Werte zur Textbox, Listbox etc. oder schon beim Einlesen der XML-Datei?

Gruß
MCoder
 
Args, sorry. War wohl zu müde und hab das C# bei der .NET beschreibung überlesen.

Kann das bitte jemand verschieben?


schon beim Einlesen. Ich bekomme es irgendwie nicht hin das ich das XML einlese und genau auf den Wert zwischen <PFAD></PFAD> zugreife.
 
Etwa so:
C#:
XmlDocument oDocument = new XmlDocument();
oDocument.Load("datei.xml");

XmlNode oNode = oDocument.SelectSingleNode("/Root/Settings/Pfad");

if( oNode != null )
{
    string strPfad = oNode.InnerText; // hier bekommst du den Pfad
}
Gruß
MCoder
 
Zurück