2010-01-26 18 views
8

Tengo un archivo xml:valor de actualización en el archivo xml

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

¿Cuál es la forma más sencilla para insertar valores en el nodo 1, el nodo 2, nodo3?

C#, Visual Studio 2005

+0

tal vez debería dar un ejemplo del fragmento de XML que desea modificar, y un ejemplo de cómo quiere que se vea después de la modificación. No está claro si está hablando de insertar valores de atributo o insertar contenido o elementos secundarios. – AaronLS

+0

agregué un archivo xml pero desapareció. ¿Hay alguna restricción? ¿Debo usar etiquetas especiales? –

+0

Simplemente pegue el xml en el texto de su pregunta y márquelo como código. –

Respuesta

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

crédito va a Padrino

How to change XML Attribute

+0

Esto actualiza un valor de atributo existente, no "insertando" como lo solicitó el OP. Sin embargo, la pregunta no es muy específica también. –

2

Aquí van:

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 
} 
método
-1

Uso AppendChild a inser un niño dentro de 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

¿Podría agregar algo de contexto a su código? – ppperry

Cuestiones relacionadas