寫出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

welkingunther 發表在 痞客邦 PIXNET 留言(0) 人氣()