动态生成xml文贱,并动态添加节点,每次追加
来源:互联网 发布:网络主播入门培训教程 编辑:程序博客网 时间:2024/06/08 09:33
public void AddLog(string Account, string url,string pwd)//url为文件地址,即文件路径
{
StringBuilder xmlAccount = new StringBuilder();
if (!File.Exists(url))//判断是否存在,创建xml文档
{
xmlAccount.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
xmlAccount.Append("<accountlist>");
xmlAccount.Append("<account>");
xmlAccount.AppendFormat("<accountName>{0}</accountName>", Account);
xmlAccount.AppendFormat("<accountPwd>{0}</accountPwd>", pwd);
xmlAccount.AppendFormat("<accountTime>{0}</accountTime>", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
xmlAccount.Append("</account>");
xmlAccount.Append("</accountlist>");
StreamWriter sw = new StreamWriter(url);
sw.WriteLine(xmlAccount);
sw.Close();
}
else
{
using (StreamWriter SW = File.AppendText(url))
{
SW.Close();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(url);
XmlNode node = xmlDoc.SelectSingleNode("accountlist");
for (int i = 0; i < node.ChildNodes.Count; i++)
{
if (node.ChildNodes[i].ChildNodes[0].InnerText == Account)//判断是否有重名的Account
{
node.ChildNodes[i].ParentNode.RemoveChild(node.ChildNodes[i]);//移出当前节点的子节点
}
}
XmlElement childnode = xmlDoc.CreateElement("account");
node.PrependChild(childnode);
XmlElement childnodeName = xmlDoc.CreateElement("accountName");
XmlElement childnodePwd = xmlDoc.CreateElement("accountPwd");
childnodePwd.InnerText = pwd;
childnodeName.InnerText = Account;
xmlDoc.Save(url);
XmlElement childnodeTime = xmlDoc.CreateElement("accountTime");
childnodeTime.InnerText = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
childnode.AppendChild(childnodeName);
childnode.AppendChild(childnodePwd);
childnode.AppendChild(childnodeTime);
xmlDoc.Save(url);
StreamWriter sw = File.AppendText(url);
sw.WriteLine(xmlAccount);
sw.Close();
}
{
StringBuilder xmlAccount = new StringBuilder();
if (!File.Exists(url))//判断是否存在,创建xml文档
{
xmlAccount.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
xmlAccount.Append("<accountlist>");
xmlAccount.Append("<account>");
xmlAccount.AppendFormat("<accountName>{0}</accountName>", Account);
xmlAccount.AppendFormat("<accountPwd>{0}</accountPwd>", pwd);
xmlAccount.AppendFormat("<accountTime>{0}</accountTime>", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
xmlAccount.Append("</account>");
xmlAccount.Append("</accountlist>");
StreamWriter sw = new StreamWriter(url);
sw.WriteLine(xmlAccount);
sw.Close();
}
else
{
using (StreamWriter SW = File.AppendText(url))
{
SW.Close();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(url);
XmlNode node = xmlDoc.SelectSingleNode("accountlist");
for (int i = 0; i < node.ChildNodes.Count; i++)
{
if (node.ChildNodes[i].ChildNodes[0].InnerText == Account)//判断是否有重名的Account
{
node.ChildNodes[i].ParentNode.RemoveChild(node.ChildNodes[i]);//移出当前节点的子节点
}
}
XmlElement childnode = xmlDoc.CreateElement("account");
node.PrependChild(childnode);
XmlElement childnodeName = xmlDoc.CreateElement("accountName");
XmlElement childnodePwd = xmlDoc.CreateElement("accountPwd");
childnodePwd.InnerText = pwd;
childnodeName.InnerText = Account;
xmlDoc.Save(url);
XmlElement childnodeTime = xmlDoc.CreateElement("accountTime");
childnodeTime.InnerText = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
childnode.AppendChild(childnodeName);
childnode.AppendChild(childnodePwd);
childnode.AppendChild(childnodeTime);
xmlDoc.Save(url);
StreamWriter sw = File.AppendText(url);
sw.WriteLine(xmlAccount);
sw.Close();
}
}
具体效果,如下图所示,读取这个文件的时候这样写:XmlDocument xml = new XmlDocument();
xml.Load(url);
xml的api
http://www.cnblogs.com/kissdodog/archive/2013/02/24/2924236.html
想看的童鞋们可以自己看哦
0 0
- 动态生成xml文贱,并动态添加节点,每次追加
- 动态生成HTML元素并为元素追加属性
- JQuery 动态XML字符串添加节点
- jQuery动态创建元素以及追加节点
- Tchart 动态添加节点
- dtree动态添加节点
- jquery动态添加节点
- hadoop动态添加节点
- zTree动态添加节点
- Hadoop动态添加节点
- 动态添加HDFS节点
- 动态生成TreeView节点
- jquery 动态生成节点
- JS为循环动态生成的节点添加点击事件
- JS为循环动态生成的节点添加点击事件
- jquery动态添加dom节点 js动态添加dom节点
- 动态添加TREEVIEW的节点
- 动态添加treeview的节点
- 开源工作流CCBPM中关于解决谷歌等浏览器silverlight的问题
- cocos2d-x游戏实例(24)-简易动作游戏(2)
- 查询某表空间被哪些用户所使用
- AKKA文档(java版)——准备开始
- Java面试题(一)
- 动态生成xml文贱,并动态添加节点,每次追加
- ios开发之uitextview及uitextfield获得焦点时弹出的自定义键盘及键盘上面的附加view设置
- JAVA fianl关键字用法
- Assembly Intro - Intel and AT&T Syntax
- cocos2d-x游戏实例(25)-简易动作游戏(3)
- 模拟示波器功能说明(图文)
- 自定义listview的adapter
- Prime Swaps
- 00-自测4. Have Fun with Numbers (20)