读取xml跟写入xml

  //public void ReadXml()
        //{
        //    XmlTextReader reader = new XmlTextReader(txtOriResource.Text);
        //    while (reader.Read())
        //    {
        //        //判断当前读取得节点类型
        //        switch (reader.NodeType)
        //        {
        //            case XmlNodeType.Element:
        //                if (reader.Name == "appSettings")
        //                {
        //                    while (reader.Read())
        //                    {
        //                        if (reader.Name == "system.web")
        //                            break;


        //                        if (reader.HasAttributes)
        //                        {
        //                            reader.MoveToAttribute(0);
        //                            string key = reader.Value;
        //                            reader.MoveToAttribute(1);
        //                            string value = reader.Value;
        //                            dic.Add(key, value);
        //                        }
        //                    }
        //                }
        //                break;


        //        }
        //    }
        //}


        public void ReadXml()
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(txtOriResource.Text);
            XmlNodeList nodes = doc.SelectNodes("configuration/appSettings/add");
            foreach (XmlNode node in nodes)
            {
                dic.Add(node.Attributes["key"].Value, node.Attributes["value"].Value);
            }
        }




        /// <summary>
        /// 更新xml文件
        /// </summary>
        public void WriteXml()
        {
            if (dic.Count > 0)
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(txtCurResource.Text);
                XmlNodeList nodes = doc.SelectNodes("root/data");
                foreach (var key in dic.Keys)//遍历字典,更新节点
                {
                    XmlNode findNode = null;
                    foreach (XmlNode node in nodes)
                    {
                        if (node.Attributes["name"].Value == key)
                        {
                            findNode = node;
                            break;
                        }
                    }
                    if (findNode != null)     //如果找到节点,便进行更新,否则就添加节点
                    {
                        findNode.InnerText = dic[key];
                    }
                    else
                    {
                        //XmlNode root = doc.SelectSingleNode("root");  //查找根节点
                        //XmlElement ele = doc.CreateElement("data");       //创建一个节点
                        //ele.SetAttribute("name", key);
                        //ele.SetAttribute("xml:space", "preserve");        //添加节点的属性
                        //XmlElement eleSub = doc.CreateElement("value");   //创建一个子节点
                        //eleSub.InnerText = dic[key];
                        //ele.AppendChild(eleSub);
                        //root.AppendChild(ele);                            //把节点附加到根节点
                    }
                }
               DialogResult result= fbd.ShowDialog();
               if (result == DialogResult.OK)  //如果确定保存,选择保存路径
               {
                   string suf = txtCurResource.Text.Substring(txtCurResource.Text.LastIndexOf("\\"));
                   string path=fbd.SelectedPath+suf;
                   doc.Save(path);
                   lblStatus.Text = "文件已更新至:"+path;
               }
            }
        }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值