2010-01-26 40 views
8

Tôi có một xml-file:Cập nhật giá trị trong file xml

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

cách đơn giản nhất để chèn giá trị trong node1, node2, node3 là gì?

C#, Visual Studio 2005

+0

Có lẽ bạn nên đưa ra một ví dụ về đoạn xml bạn muốn thay đổi, và một ví dụ về cách bạn muốn nó trông nom sửa đổi. Nó không phải là rõ ràng nếu bạn đang nói về chèn các giá trị thuộc tính hoặc chèn nội dung hoặc các phần tử con. – AaronLS

+0

tôi đã thêm một tệp xml nhưng bị biến mất. Có hạn chế nào không? Tôi có nên sử dụng các thẻ đặc biệt không? –

+0

Chỉ cần dán xml vào văn bản câu hỏi của bạn và đánh dấu nó là mã. –

Trả lời

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

tín dụng đi vào Padrino

How to change XML Attribute

+0

Điều này sẽ cập nhật giá trị thuộc tính hiện tại, chứ không phải 'chèn' như những gì OP yêu cầu. Tuy nhiên câu hỏi cũng không quá cụ thể. –

2

Ở đây bạn đi:

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

Sử dụng AppendChild phương pháp để INSER một đứa trẻ bên trong một nút .

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

Bạn có thể thêm một số ngữ cảnh vào mã của mình không? – ppperry

Các vấn đề liên quan