2010-01-26 12 views
8

Ho un file XML:valore di aggiornamento in file xml

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

Qual è il modo più semplice per inserire i valori di node1, node2 node3?

C#, Visual Studio 2005

+0

Forse si dovrebbe dare un esempio del frammento XML che si desidera modificare, e un esempio di come si desidera guardare dopo la modifica. Non è chiaro se si sta parlando di inserire valori di attributo o inserire contenuto o elementi secondari. – AaronLS

+0

ho aggiunto un file xml ma è scomparso. Ci sono delle restrizioni? Devo usare tag speciali? –

+0

Basta incollare l'xml nel testo della domanda e contrassegnarlo come codice. –

risposta

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); 

merito va al Padrino

How to change XML Attribute

+0

Aggiorna un valore di attributo esistente, non "inserisce" come richiesto dall'OP. Tuttavia la domanda non è molto specifica. –

2

Qui si va:

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 
} 
metodo
-1

Usa AppendChild ad inser un bambino all'interno di un nodo .

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

Potresti aggiungere qualche contesto al tuo codice? – ppperry

Problemi correlati