2016-09-15 2 views
-1

Ich habe versucht, diese kleine XML-Beispieldatei ohne Erfolg zu aktualisieren. Es gibt mir keinen Fehler, aber die Datei bleibt unverändert. Irgendwelche Ideen?Aktualisieren Sie vorhandene XML-Datei in C#

Dank

XML-Beispiel:

<test> 
    <user>John Doe</user> 
    <user>Jane Doe</user> 
</test> 

C# -Code

XmlDocument doc = new XmlDocument(); 
    doc.Load("../../../test.xml"); 

    XmlNode sNode = doc.SelectSingleNode("/test/user"); 
    XmlAttribute users = sNode.Attributes["user"]; 

    if (users != null) 
    {    
      string currentValue = users.Value;    
      if (string.IsNullOrEmpty(currentValue)) 
      { 
      users.Value = "Thomas"; 
      } 
    } 
    doc.Save("../../../test1.xml"); 
+0

'sNode.Attributes [" uns er "]' Ihre XML enthält kein Benutzerattribut – DanielS

Antwort

1

Dies ist, wie ich den Wert innerhalb eines Knotens geändert:

 XmlNode node= _doc.SelectSingleNode("test/user[1]"); // [index of user node] 
     node.InnerText = value; 
     _doc.Save(@"path"); 
0

Ihr Benutzerknoten doesn Habe kein Attribut in deinem XML Datei:

So ist users null hier:

XmlAttribute users = sNode.Attributes["user"]; 

Sie sollten, wenn Snøde testen = null

if (sNode != null){ 
    .... 
} 
+0

Danke, ich habe gerade bemerkt, dass ich dort kein Attribut habe, aber die Lösung von Timon Post war das, wonach ich gesucht habe und es funktioniert perfekt. – Thomas

0

Das funktioniert jetzt perfekt:

XmlDocument doc = new XmlDocument(); 
doc.Load("../../../test.xml"); 

XmlNode node = doc.SelectSingleNode("test/user[1]"); // [index of user node] 
node.InnerText = "thomas"; 

doc.Save("../../../test1.xml"); 

Danke

Verwandte Themen