最近在用C#語言開發項目的時候,客戶要求在客戶端記住登錄的用戶名,於是想到了用Xml的形式保存和讀取登陸過的用戶名的方法來實現。
過程如下
1. 首先,根據我的需求,只需要記住用戶名即可,所有我設計的xml文件的格式為:
****************************************************************
<?xml version="1.0" encoding="gb2312"?>
<userID>
<user nameSeq="1" values="username1" />
<user nameSeq="2" values="username2" />
</userID>
****************************************************************
是不是很簡單,就一個節點而已。
下面就以這個xml為例說明一下取得和寫入的方法。
2. 寫入xml的代碼。
private void setUserName(String user_name){
XmlDocument xmlDoc = new XmlDocument();//聲明讀取xml的對象
xmlDoc.Load(XML_FILE_DIR);//獲取xml文件,XML_FILE_DIR為xml文件的存放路徑,我在這里定義的是常量。
XmlNode root = xmlDoc.SelectSingleNode("userID");
XmlNode xn = xmlDoc.SelectSingleNode("user");
XmlElement xe1 = xmlDoc.CreateElement("user");//創建一個<userID>節點
xe1.SetAttribute("nameSeq", (userList.Count + 1).ToString()); //給節點的nameSeq賦值
xe1.SetAttribute("values", cbxYhid.Text); //給節點的values賦值
root.AppendChild(xe1);//添加節點
xmlDoc.Save(XML_FILE_DIR);//保存
}
這樣就可以忘xml中添加一個節點了,當然也可以用循環或者其他的方法一次往xml中添加一個以上的節點,然后保存,根據需求自由發揮了。
3. 讀取xml文件。
private List<String> getUserName()
{
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(XML_FILE_DIR);
XmlNode xn = xmlDoc.SelectSingleNode("userID");
XmlNodeList xnl = xn.ChildNodes;
foreach (XmlNode xnf in xnl)
{
XmlElement xe = (XmlElement)xnf;
String name = xe.GetAttribute("values");
if (!String.IsNullOrEmpty(name))
{
userList.Add(xe.GetAttribute("values"));
}
}
return userList;
}
catch (Exception)
{
return null;
}
}
代碼如上,我是讀出來放在了list當中的,也可以按照實際的需求自由發揮。
程序員的心情:
每天記錄一點點,再堅持一天,生活如此,編程亦如此吧。
最近喜歡上了納蘭性德的詞,喜歡他的多愁善感,喜歡那種凄美的感覺。
《木蘭辭 擬古決絕詞柬友》 --納蘭性德
人生若只如初見,何事秋風悲畫扇。
等閑變卻故人心,卻道故人心易變。
驪山語罷清宵半,夜雨霖鈴終不怨。
何如薄幸錦衣郎,比翼連枝當日願。