[C#] XML findet nur zwei Knotenpunkte

  • Moin,


    ich verstehe nicht warum er nur 2 Stück in die XML Datei speichert und sobald ein dritter Wert kommt wird der zweite überschrieben.
    Eventuell jemand eine Idee woran das liegt?




    #push nach 24 h
    #push nach 24 h


    nobody can help me:(

    2 Mal editiert, zuletzt von GamerXiOS ()

  • Eigentlich sollte dort bei gampepfad "gamepath" drin stehen.

    XML
    1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    2. <settings>
    3. <steampfad>steampath</steampfad>
    4. <gamepfad>
    5. </gamepfad>
    6. </settings>


    Obwohl in gamepfad was drinne steht speichert er es nicht ab, wenn ich den zweiten Wert abspeicher:


    XML
    1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    2. <settings>
    3. <steampfad>steampath</steampfad>
    4. <gamepfad>gamecfgpath</gamepfad>
    5. </settings>



    C
    1. steamPathText.Text = ConfigManager.Read("steampfad", "n/a");
    2. GamePathText.Text = ConfigManager.Read("gamepfad", "n/a");
    3. GameCfgPath.Text = ConfigManager.Read("gamecfgpfad", "n/a");

    Das FindNode gibt einfach ein falschen Wert zurück.

  • Warum machst du es dir so umständlich? ^^
    Erstell dir doch einfach ein Objekt mit mit den Properties die in die XML gehören und Serialize das Object und schreib es in ein File und den Weg umgekehrt vom File zum Object.



    Bsp.
    Klasse für Eigenschaften in der XML:


    Und dann zwei Funktionen zum Serializen und Deserializen:

  • Wenn es immer fixe Dateien sind, dann machst du dafür halt mehrere Klassen.

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Ich probiere grade deine Methode.
    Jedoch hab ich grade voll den hänger und weis nicht wie ich auf


    Code
    1. [XmlRoot(ElementName="settings")]
    2. public class Settings {
    3. [XmlElement(ElementName="steampfad")]
    4. public string Steampfad { get; set; }
    5. [XmlElement(ElementName="gamepfad")]
    6. public string Gamepfad { get; set; }
    7. }

    zugreife :x

  • Du musst natürlich ein Objekt mit der dafür angerfertigten Klasse initialisieren und kannst dann mit dem Objekt auf die Member der Klasse zugreifen.


    Settings objSetting = new Settings();
    string tmp = objSetting.Steampfad;