zoukankan      html  css  js  c++  java
  • asp.net读写XML小结

    asp.net 对xml文件的读写,添加,修改,删除操作
    下面有代码调试正确

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Xml;
    private XmlDocument xmlDoc;

            //load xml file
            private void LoadXml()
            {
                xmlDoc=new XmlDocument();
                xmlDoc.Load(Server.MapPath("User.xml"));
            }


            //添加节点
            private void AddElement()
            {
               
                LoadXml();

                XmlNode xmldocSelect=xmlDoc.SelectSingleNode("user"); //需增节点的父节点,如/root/user
               
                XmlElement el=xmlDoc.CreateElement("person"); //添加person节点
                el.SetAttribute("name","风云"); //添加person节点的属性"name"
                el.SetAttribute("sex","女");   //添加person节点的属性 "sex"
                el.SetAttribute("age","25");   //添加person节点的属性 "age"
               
                 XmlElement xesub1=xmlDoc.CreateElement("pass"); //添加person节点的里的节点
                 xesub1.InnerText="123";//设置文本节点
                 el.AppendChild(xesub1);
                 XmlElement xesub2=xmlDoc.CreateElement("Address");
                 xesub2.InnerText="昆明";//设置文本节点
                 el.AppendChild(xesub2);

                xmldocSelect.AppendChild(el);
                xmlDoc.Save(Server.MapPath("user.xml"));


            }


           

            //修改节点
            private void UpdateElement()
            {
                LoadXml();
                XmlNodeList nodeList=xmlDoc.SelectSingleNode("user").ChildNodes;//获取bookstore节点的所有子节点
                foreach(XmlNode xn in nodeList)//遍历所有子节点
                {
                    XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型
                    if(xe.GetAttribute("name")=="风云")//如果name属性值为“风云”
                    {
                        xe.SetAttribute("name","发明");

                       
                        //如果下面有子节点在下走
                         XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点
                        foreach(XmlNode xn1 in nls)//遍历
                        {
                           XmlElement xe2=(XmlElement)xn1;//转换类型
                            if(xe2.Name=="pass")//如果找到
                            {
                                xe2.InnerText="66666";//则修改
                                break;

                            }
                        }

                        break;
                    }
                }
               xmlDoc.Save(Server.MapPath("user.xml"));//保存
            }


            //删出节点
            private void deleteNode()
            {
               
                LoadXml();
                XmlNodeList xnl=xmlDoc.SelectSingleNode("user").ChildNodes;

                foreach(XmlNode xn in xnl)
                {
                    XmlElement xe=(XmlElement)xn;
                   
                    if(xe.GetAttribute("name")=="发明")
                    {
                        //xe.RemoveAttribute("name");//删除name属性
                        xe.RemoveAll();//删除该节点的全部内容

                       
                        break;
                    }
                   
                }
                xmlDoc.Save(Server.MapPath("user.xml"));//保存
            }

            private void showIt()
            {
                LoadXml();
                XmlNode xn=xmlDoc.SelectSingleNode("user");

                XmlNodeList xnl=xn.ChildNodes;
      
                foreach(XmlNode xnf in xnl)
                {
                    XmlElement xe=(XmlElement)xnf;
    //                Console.WriteLine(xe.GetAttribute("name"));//显示属性值
    //                Console.WriteLine(xe.GetAttribute("sex"));
    //
    //                XmlNodeList xnf1=xe.ChildNodes;
    //                foreach(XmlNode xn2 in xnf1)
    //                {
    //                    Console.WriteLine(xn2.InnerText);//显示子节点点文本
    //                }

                }

            }
       
    Xml的样式:
    <?xml version="1.0" encoding="gb2312"?>
    <user>
    <person>
    </person>
    <person name="风拉" sex="男" age="25">
        <pass>123</pass>
        <Address>大明</Address>
    </person>
    <person name="风云" sex="女" age="25">
        <pass>123</pass>
        <Address>昆明</Address>
    </person>
    </user>

  • 相关阅读:
    IO 单个文件的多线程拷贝
    day30 进程 同步 异步 阻塞 非阻塞 并发 并行 创建进程 守护进程 僵尸进程与孤儿进程 互斥锁
    day31 进程间通讯,线程
    d29天 上传电影练习 UDP使用 ScketServer模块
    d28 scoket套接字 struct模块
    d27网络编程
    d24 反射,元类
    d23 多态,oop中常用的内置函数 类中常用内置函数
    d22 封装 property装饰器 接口 抽象类 鸭子类型
    d21天 继承
  • 原文地址:https://www.cnblogs.com/skyshenwei/p/1627699.html
Copyright © 2011-2022 走看看