動態生成xml文賤,並動態添加節點,每次追加

 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();


                }


            }

具體效果,如下圖所示,讀取這個文件的時候這樣寫:XmlDocument xml = new XmlDocument();

 xml.Load(url);

xml的api

http://www.cnblogs.com/kissdodog/archive/2013/02/24/2924236.html

想看的童鞋們可以自己看哦



發佈了28 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章