茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1729345 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_00062.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

Dot Net? : [轉貼]C# 讀寫 txt 檔的兩種方法介紹

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼](C#)寫出/讀取 XML之方法

(C#)寫出/讀取 XML之方法

寫出XML用拼文字的方式

先寫XML最上面那行

string mystr="<?xml version=\"1.0\" encoding=\"utf-8\" ?>"+Environment.NewLine+"<Data>"+ Environment.NewLine;

跑個For迴圈組合XML裡面的相關Node

For(條件條件)

{

 mystr += string.Format
("<Item>" + Environment.NewLine+
 "<Name>{0}</Name>"+Environment.NewLine+
 "<URL><![CDATA[{1}]]></URL>" + Environment.NewLine +
 "</Item>"+Environment.NewLine                   
 ,你要放的{0}的值,你要放的{1}的值
);
 mystr += Environment.NewLine;

}

 

然後寫出

StreamWriter sw = new StreamWriter(Application.StartupPath+"\\取個檔案的名字.xml", false, System.Text.Encoding.UTF8);



sw.Write(mystr);
sw.Flush();
sw.Close();

寫出後的XML會長這樣,注意用CDATA的功用是可以避開很多特殊字元,像是&、<..等等,

遇到這些字元的話不用CDATA會錯誤

<?xml version="1.0" encoding="utf-8" ?>
<Data>
<Item>
<Name>Cool1 </Name>
<URL><![CDATA[http://www.google.com]]></URL>
</Item>

<Item>
<Name>Cool2 </Name>
<URL><![CDATA[http://www.gamer.com.tw]]></URL>
</Item>
</DATA>

========================補充============================

如果要去改XML裡面某個Node節點之間的值的話,可用

XmlDocument xd = new XmlDocument();

 

xd.Load(
"my.xml");

 

XmlNode node = xd.SelectSingleNode( "//Hello");

 

node.InnerText = "你好";

 

xd.Save( "my.xml");

這樣會把原本的<Hello></Hello>修改成

<Hello>你好</Hello>

 

========================補充============================

接著下面是讀取


XmlDocument xd = new XmlDocument();

xd.Load("NameAndURL.xml");

XmlNodeList nodelist = xd.SelectNodes("//Item");

for (int i = 0; i < nodelist.Count; i++)
{
     richTextContent.AppendText(nodelist[i].SelectSingleNode("URL").InnerText);
     richTextContent2.AppendText(Environment.NewLine);
}

這樣會在RichTextBox控制項裡印出

http://www.google.com

http://www.gamer.com.tw


原文出處: (C#)寫出/讀取 XML之方法 @ 式門遁甲 :: 痞客邦 PIXNET ::
冷日補充:
會轉這篇是因為,冷日測試發現,用前面所說的辦法直接輸出的話,UltraEdit 判定輸出之檔案為純 DOS 格式,連 UTF-8 都不是!
雖然依照 VS2013 官方的說法,他輸出就是 UTF-8 了,但是冷日擔心害怕,所以還是檢查一下好了!
換言之,輸出時記得採用[code]new StreamWriter([String that you want to write out], System.Text.Encoding.UTF8);[code]即可!
前一個主題 | 下一個主題 | | | |

討論串




Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|