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