2010-01-26 3 views
8

Ich habe eine xml-Datei:aktualisiert Wert in XML-Datei

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<root> 
    <level> 
    <node1 /> 
    <node2 /> 
    <node3 /> 
    </level> 
</root> 

Was ist der einfachste Weg, um Werte in node1, Knoten2, node3 einfügen?

C#, Visual Studio 2005

+0

Vielleicht sollten Sie ein Beispiel für die XML-Fragment Sie geändert möchten geben, und ein Beispiel dafür, wie Sie es wollen nach der Änderung aussehen. Es ist nicht klar, ob Sie über das Einfügen von Attributwerten oder das Einfügen von untergeordneten Inhalten oder Elementen sprechen. – AaronLS

+0

Ich habe eine XML-Datei hinzugefügt, ist aber verschwunden. Gibt es Einschränkungen? Sollte ich spezielle Tags verwenden? –

+0

Fügen Sie einfach das XML in den Text Ihrer Frage ein und markieren Sie es als Code. –

Antwort

3
//Here is the variable with which you assign a new value to the attribute 
    string newValue = string.Empty 
    XmlDocument xmlDoc = new XmlDocument(); 

    xmlDoc.Load(xmlFile); 

    XmlNode node = xmlDoc.SelectSingleNode("Root/Node/Element"); 
    node.Attributes[0].Value = newValue; 

    xmlDoc.Save(xmlFile); 

Kredit geht zu Padrino

How to change XML Attribute

+0

Dies aktualisiert einen vorhandenen Attributwert, nicht "Einfügen" als das, was das OP angefordert hat. Dennoch ist die Frage auch nicht sehr spezifisch. –

2

Hier gehen Sie:

XmlDocument xmldoc = new XmlDocument(); 
xmldoc.LoadXml(@" 
    <root> 
     <level> 
      <node1 /> 
      <node2 /> 
      <node3 /> 
     </level> 
    </root>"); 
XmlElement node1 = xmldoc.SelectSingleNode("/root/level/node1") as XmlElement; 
if (node1 != null) 
{ 
    node1.InnerText = "something"; // if you want a text 
    node1.SetAttribute("attr", "value"); // if you want an attribute 
    node1.AppendChild(xmldoc.CreateElement("subnode1")); // if you want a subnode 
} 
-1

Verwenden AppendChild Methode inser ein Kind in einem Knoten .

yournode.AppendChild(ChildNode); 

link text

0
XElement t = XElement.Load("filePath"); 
t.Element("level").Element("node1").Value = ""; 
t.Element("level").Element("node2").Value = ""; 
t.Element("level").Element("node3").Value = ""; 
t.Save("filePath"); 
+0

Könnten Sie Ihrem Code bitte einen Kontext hinzufügen? – ppperry

Verwandte Themen