最近在用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当中的,也可以按照实际的需求自由发挥。
程序员的心情:
每天记录一点点,再坚持一天,生活如此,编程亦如此吧。
最近喜欢上了纳兰性德的词,喜欢他的多愁善感,喜欢那种凄美的感觉。
《木兰辞 拟古决绝词柬友》 --纳兰性德
人生若只如初见,何事秋风悲画扇。
等闲变却故人心,却道故人心易变。
骊山语罢清宵半,夜雨霖铃终不怨。
何如薄幸锦衣郎,比翼连枝当日愿。