zoukankan      html  css  js  c++  java
  • C# 操作XML

    XML存储数据的一种文本格式,以节点的方式存储,类似html,只是节点名称可以自己定义。

    1.创建XML

    public void fun_createXML() {
                XmlNode xmlnode;
                XmlElement xmlelem;
                XmlDocument xmldoc = new XmlDocument();
                //创建根节点
                XmlDeclaration xmldecl = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null);
                xmldoc.AppendChild(xmldecl);
                //创建员工节点容器
                xmlelem = xmldoc.CreateElement("", "Employees", "");
                xmldoc.AppendChild(xmlelem);
                //放三个员工到容器里面
                for (int i = 0; i < 3; i++)
                {
                    //xmldoc.SelectSingleNode()查找某个节点
                    xmlnode = xmldoc.SelectSingleNode("Employees");
                    //创建节点
                    XmlElement xe = xmldoc.CreateElement("node");
                    xe.SetAttribute("name", "evan");//设置属性
                    xe.SetAttribute("age", "27");
                    //创建节点
                    XmlElement kemu1 = xmldoc.CreateElement("title");
                    kemu1.SetAttribute("id", "title");//设置属性
                    kemu1.InnerText = "javascript";//设置文本
                    xe.AppendChild(kemu1);//填充到xe节点中
    
                    XmlElement score = xmldoc.CreateElement("score");
                    score.InnerText = "86.5";
                    xe.AppendChild(score);
    
                    xmlnode.AppendChild(xe);
                }
                //在项目根目录创建XML文件
                xmldoc.Save(Server.MapPath("data3.xml"));
            }
    

    2.读取XML

     public void fun_GetXML() {
                //System.IO.StreamReader myfile = 
                //    new System.IO.StreamReader(Server.MapPath("data3.xml"),System.Text.Encoding.Default);
                //string mystring = myfile.ReadToEnd();//以文本的方式获取全部文本
                //myfile.Close();
                XmlDocument xd = new XmlDocument();
                xd.Load(Server.MapPath("data3.xml"));
                //获取所有子节点
                XmlNodeList xnlist = xd.SelectSingleNode("Employees").ChildNodes;
                for (int i = 0; i < xnlist.Count; i++) {
                    XmlElement xe = (XmlElement)xnlist[i];
                    Response.Write("名字是:"+xe.GetAttribute("name")+"</br>");//获取属性名称
                    //获取子节点
                    XmlNodeList xn2=xe.ChildNodes;
                    for (int y = 0; y < xn2.Count; y++)
                    {
                        XmlElement xe2 = (XmlElement)xn2[y];
                        if (xe2.Name == "title")//节点名称
                        {
                            Response.Write("科目是:" + xe2.InnerText + "</br>");
                        }
                        else {
                            Response.Write("分数数:" + xe2.InnerText + "</br>");
                        }
                    }
                }
            }
    

    3.修改XML

    public void fun_updateXMLText()
            {
                XmlDocument xd = new XmlDocument();
                xd.Load(Server.MapPath("data3.xml"));
                //获取所有子节点
                XmlNodeList nodelist = xd.SelectSingleNode("Employees").ChildNodes;
                //循环子节点
                foreach (XmlNode x in nodelist)
                {
                    //转换
                    XmlElement xe = (XmlElement)x;
                    if (xe.Name == "NEWnode")
                    {//判断节点名称
                        xe.InnerText = "bbbbbbbbbb";//修改里面的文本
                    }
                }
                xd.Save(Server.MapPath("data3.xml"));//重新保存
    
            }
    

    4.添加XML

    public void fun_addNodeXML() {
                XmlDocument xd = new XmlDocument();
                xd.Load(Server.MapPath("data3.xml"));
                XmlNode xn = xd.SelectSingleNode("Employees");
    
                XmlElement xe = xd.CreateElement("NEWnode");
                xe.InnerText = "NEWnodeTEXT";
                xn.AppendChild(xe);
    
                xd.Save(Server.MapPath("data3.xml"));
    
            }
    

     5.删除XML节点

    XmlDocument xmlDoc=new XmlDocument(); 
    xmlDoc.Load( Server.MapPath("data.xml") ); 
    XmlNodeList xnl=xmlDoc.SelectSingleNode("Employees").ChildNodes; 
    foreach(XmlNode xn in xnl) 
    { 
        XmlElement xe=(XmlElement)xn; 
        xe.RemoveAttribute("genre");//删除genre属性 
    
        XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点 
        foreach(XmlNode xn1 in nls)//遍历 
        { 
            XmlElement xe2=(XmlElement)xn1;//转换类型 
            if(xe2.Name=="flag")//如果找到 
            { 
                xe.RemoveChild(xe2);//则删除
            } 
        } 
    } 
    xmlDoc.Save( Server.MapPath("data.xml") ); 
    

      

      

      

  • 相关阅读:
    斐波那契数列
    用两个栈实现队列
    从尾到头打印链表
    HDOJ5877(dfs序+离散化+树状数组)
    HDOJ5876(补图的最短路)
    POJ3090(欧拉函数)
    POJ2478(欧拉函数)
    POJ2407(欧拉函数)
    POJ2142(扩展欧几里得)
    POJ3020(最小边覆盖)
  • 原文地址:https://www.cnblogs.com/Evan-Pei/p/4691576.html
Copyright © 2011-2022 走看看