2013-03-09 38 views
0

我對C#ASP.NET中的XML文件很陌生。我有以下格式的XML:如何使用C#更改XML文件中的元素內的數據?

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<Installation> 
    <ServerIP>192.168.20.110</ServerIP> 
    <DB_Name>USTCKT1</DB_Name> 
    <Username>jorame</Username> 
    <Password>Cru$%e20</Password> 
    <Table_PreFix>TCK</Table_PreFix> 
</Installation> 

我需要在每個單元內更改的值。例如,當用戶點擊時,我應該能夠用192.168.1.12替換192.168.20.110。

我該如何做到這一點?任何幫助將非常感激。

回答

0

一般情況下,你可以做下面的步驟:

  1. 創建一個新的XmlDocument對象並加載內容。內容可能是文件或字符串。
  2. 找到您要修改的元素。如果你的xml文件的結構太複雜,你可以用xpath找到你想要的。
  3. 將修改應用於該元素。
  4. 更新您的xml文件。

下面是一個簡單的演示:

XmlDocument xmlDoc = new XmlDocument(); 
    xmlDoc.Load("file.xml"); // use LoadXml(string xml) to load xml string 
    string path = "/Installation/ServerIP"; 
    XmlNode node = xmlDoc.SelectSingleNode(path); // use xpath to find a node 
    node.InnerText = "192.168.1.12"; // update node, replace the inner text 
    xmlDoc.Save("file.xml"); // save updated content 

希望這是有幫助的。

+0

您是否介意顯示如何閱讀節點內部的內容? – jorame 2013-03-12 02:47:54

+0

@jorame我的榮幸。 XmlNode有很多有用的屬性(http://msdn.microsoft.com/en-us/library/system.xml.xmlnode_properties.aspx)讓我們以「ServerIP」爲例。 node.InnerText將返回「192.168.1.12」,如果在節點中有一個屬性,則可以使用node.Attributes [「attributeName」]來獲取該屬性。 – 2013-03-12 03:27:36

+0

非常感謝你的幫助。我能夠完成這個過程。 – jorame 2013-03-12 03:31:09

1

您可以使用的XDocument類做這樣的事情:

XDocument doc = XDocument.Load(file.xml); 
doc.Element("Installation").Element("ServerIP").Value = "192.168.1.12"; 
//Update the rest of the elements 
doc.Save(file.xml); 

More Details

如果你選擇你的元素時,你將需要包括在的XElement選擇如XML命名空間碰上命名空間的問題doc.Element(namspace + "Installation")

+0

這會取代當前值嗎? – jorame 2013-03-09 03:24:54

+0

@jorame是的,它會。保存將覆蓋XDocument中的xml – gdp 2013-03-09 03:27:12

相關問題