2010-02-09 57 views
1

我怎樣寫的東西在我的XML文件的innerText寫的innerText

我能夠這樣從文件中讀取particualar標籤:

protected void Page_Load(object sender, EventArgs e) 
    {// this is to read from xml. 
     if (!Page.IsPostBack) 
     { 
      XmlDocument xmlDoc = new XmlDocument(); 

      xmlDoc.Load(@"C:\configfolder\config.xml"); 

      XmlNodeList portNo = xmlDoc.GetElementsByTagName("AgentConfigRepository"); 
      foreach (XmlNode node in portNo) 
      { 
       XmlElement bookElement = (XmlElement)node; 
       string no = bookElement.GetElementsByTagName("OVERRIDE_CONFIG_FILE_NAME")[0].InnerText; 
       TextBox1.Text = no; 
      } 
     } 
    } 

現在我想改變在OVERRIDE_CONFIG_FILE_NAME

的innerText屬性值,這是我的xml文件看起來像:

<?xml version="1.0" encoding="utf-8" standalone="no"?> 
<AgentConfigRepository> 
    <SERVER_SHARE_SW_DIR_NAME val="singleVal">AgentSW</SERVER_SHARE_SW_DIR_NAME> 
    <OVERRIDE_CONFIG_FILE_NAME val="singleVal">override_config.xml</OVERRIDE_CONFIG_FILE_NAME> 
    <MAINTAIN_AGENT_SW_LEVEL val="singleVal">1.0</MAINTAIN_AGENT_SW_LEVEL> 
    <MAINTAIN_AGENT_SW_PATCH_LEVEL val="singleVal">0</MAINTAIN_AGENT_SW_PATCH_LEVEL> 
</AgentConfigRepository> 

所以我想將override_config.xml更改爲文本框中的其他值。

任何建議..感謝

回答

2

如果可以使用的XDocument,它變得相當簡單:

XDocument xdoc = XDocument.Load(@"C:\configfolder\config.xml"); 
xdoc.Root.Element("OVERRIDE_CONFIG_FILE_NAME").SetValue("HelloThere"); 
xdoc.Save(@"C:\so2.xml"); 
1

不幸的是,這是未經考驗的時刻(我不是在一個位置進行測試),但從你的問題的樣子,你正在試圖改變元素的innerText你在這一行已經發現:

bookElement.GetElementsByTagName("OVERRIDE_CONFIG_FILE_NAME")[0].InnerText; 

要無論是在你的文本框中。通常你想有一個說法是這樣的:

bookElement.GetElementsByTagName("OVERRIDE_CONFIG_FILE_NAME")[0].InnerText = "new text" 

新文本可以從一個文本框在您的應用程序中的字符串或其他變量或只是硬編碼(如本例)。希望這可以幫助。

+0

我以前試過,但它並沒有這樣的單獨工作.. 。謝謝,雖然 – user175084 2010-02-09 22:14:25

1

您可以只設置的innerText像任何其他財產(蒂姆·c。所述)

當你做到這一點,但是,它只設置它在XmlDocument對象。爲了看到文件中的變化,你必須做保存更改回原來的文件:

bookElement.save(文件名)