2010-01-26 5 views
8

J'ai un fichier xml:valeur mise à jour dans le fichier xml

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

Quelle est la façon la plus simple d'insérer des valeurs dans node1, node2, node3?

C#, Visual Studio 2005

+0

Peut-être que vous devriez donner un exemple du fragment XML que vous souhaitez modifier, et un exemple de la façon dont vous voulez regarder après modification. Il n'est pas clair si vous parlez d'insérer des valeurs d'attribut ou d'insérer du contenu ou des éléments enfant. – AaronLS

+0

J'ai ajouté un fichier XML, mais est dissapeared. Y a-t-il des restrictions? Devrais-je utiliser des étiquettes spéciales? –

+0

Il suffit de coller le fichier XML dans le texte de votre question et marquez-le comme du code. –

Répondre

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

Le crédit va à Padrino

How to change XML Attribute

+0

Ceci met à jour une valeur d'attribut existante, et non pas 'l'insertion' comme demandé par le PO. Néanmoins, la question n'est pas très spécifique aussi. –

2

Ici, vous allez:

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

Utilisez la méthode AppendChild pour Inser un enfant à l'intérieur d'un noeud .

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

Pourriez-vous s'il vous plaît ajouter un certain contexte à votre code? – ppperry

Questions connexes