2010-01-26 12 views
8

Mam pliku XML:Aktualizacja wartości w pliku xml

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

Co jest najprostszym sposobem, aby wstawić wartości w node1, NODE2, Node3?

C#, Visual Studio 2005

+0

Może powinieneś dać przykład fragmentu xml chcesz modyfikować i przykład tego, jak ma to wyglądać po modyfikacji. Nie jest jasne, czy mówisz o wstawianiu wartości atrybutów lub wstawianiu treści lub elementów podrzędnych. – AaronLS

+0

Dodałem plik xml, ale został usunięty. Czy są jakieś ograniczenia? Czy powinienem używać specjalnych tagów? –

+0

Po prostu wklej kod XML do tekstu pytania i oznacz go jako kod. –

Odpowiedz

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

zasługa Padrino

How to change XML Attribute

+0

Uaktualnia to istniejącą wartość atrybutu, a nie "wstawiając" jako zadane przez PO. Niemniej jednak pytanie nie jest zbyt szczegółowe. –

2

Proszę bardzo:

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

użycie appendChild metody Inser dziecko wewnątrz węzła .

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

Czy możesz dodać kontekst do swojego kodu? – ppperry

Powiązane problemy