2013-01-04 79 views
-3

嗨我必須從1 XML替換某些節點到更大的web.config使用xml替換另一個更大的xml中的節點#

<?xml version="1.0" encoding="Windows-1252" standalone="yes"?> 
    <VFPData> 
    <site> 
     <sitename></sitename> 
     <appname></appname> 
     <cookie>.cookiename</cookie> 
     <host></host> 
     <port>1234</port> 
     <database></database> 
     <userid></userid> 
     <password></password> 
    </site> 
    </VFPData> 

所以我要拷貝過來說<port>web.config

+0

你問在運行時修改web.config嗎? – ryadavilli

+0

你的問題是什麼? –

+0

我假設它不僅僅是要複製的節點,而是多個節點。您可以通過將文本文件讀入流中,複製所需的部分,然後附加當前的web.config文件來完成此操作。看看Stream,MemoryStream和FileStream,因爲這可能有幫助。 – Dave

回答

0

如果您想將兩個文件都視爲文本文件,則可以使用StreamWriter和StreamReader。

using System; 
using System.IO; 

class Test 
{ 
    public static void Main() 
    { 
     string path = @"c:\temp\MyTest.txt"; 
     // This text is added only once to the file. 
     if (!File.Exists(path)) 
     { 
      // Create a file to write to. 
      using (StreamWriter sw = File.CreateText(path)) 
      { 
       sw.WriteLine("Hello"); 
       sw.WriteLine("And"); 
       sw.WriteLine("Welcome"); 
      } 
     } 

     // This text is always added, making the file longer over time 
     // if it is not deleted. 
     using (StreamWriter sw = File.AppendText(path)) 
     { 
      sw.WriteLine("This"); 
      sw.WriteLine("is Extra"); 
      sw.WriteLine("Text"); 
     } 

     // Open the file to read from. 
     using (StreamReader sr = File.OpenText(path)) 
     { 
      string s = ""; 
      while ((s = sr.ReadLine()) != null) 
      { 
       Console.WriteLine(s); 
      } 
     } 
    } 
} 

Source

權,這包括流,將文本工作的偉大。但是,您正在編輯XML,因此可以進一步推進。由於兩者都是XML格式,因此可以使用XDocument對象(這將允許Linq)。這將允許您讀取原始流,將要複製的節點存儲爲變量,然後打開web.config文件並添加節點。