添加、读取、修改xml例子

来源:互联网 发布:2010年网络歌曲女 编辑:程序博客网 时间:2024/06/16 12:48
<?xml version="1.0" encoding="gb2312"?>
<zhuanye>
  <major>
    <major_id>1</major_id>
    <major_title>专业100</major_title>
  </major>
  <major>
    <major_id>2</major_id>
    <major_title>专业2</major_title>
  </major>

</zhuanye>



添加:

    protected void AddBClass_Click(object sender, EventArgs e)
    {
        string url = Server.MapPath("../XML/major.xml");
        string major_title = this.title.Text.ToString();
        try
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(url); //加载XML文档
            XmlNode root = xmlDoc.SelectSingleNode("zhuanye");
            //查找第一个匹配的XmlNode
            XmlElement major = xmlDoc.CreateElement("major");
            string id;
            //创建第一个节点的第一个元素
            if (root.HasChildNodes)
            {
                id = Convert.ToString(Convert.ToInt32(root.LastChild.FirstChild.InnerText) + 1);
            }
            else
            {
                id = "1";
            }
            //设置ID
            XmlElement id2 = xmlDoc.CreateElement("major_id");
            //创建第一个节点的第一个元素里的属性
            id2.InnerText = id;//设置文本节点 


            major.AppendChild(id2);
            //设置专业名
            XmlElement title = xmlDoc.CreateElement("major_title");
            //创建第一个节点的第一个元素里的属性
            title.InnerText = major_title;//设置文本节点 
            major.AppendChild(title);


            root.AppendChild(major);
            xmlDoc.Save(url);


        }
        catch(Exception ex)
        {
            Response.Write(ex.ToString());
        }
    }


读取xml展示

 private void ReadXML()
    {
        string url = Server.MapPath("../XML/major.xml");//获得当前文件夹下的XML文件
        StreamReader sRead = new StreamReader(url, System.Text.Encoding.GetEncoding("GB2312"));
        //以一种特定的编码从字节流读取字符,必须要转化成GB2312读取才不能出乱码
        XmlDataDocument datadoc = new XmlDataDocument();//操作XML文档
        datadoc.DataSet.ReadXml(sRead);//将读取的字节流存到DataSet里面去
        this.GridView1.DataSource = datadoc.DataSet.Tables[0].DefaultView;
        //以news_id建立索引
        this.GridView1.DataBind();
        datadoc = null;//清空对XML数据的操作
        sRead.Close();//关闭字节流的读取
    }


修改:
    protected void Updatemajor(object sender, GridViewUpdateEventArgs e)
    {
        string url = Server.MapPath("../XML/major.xml");
        int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
        string title = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.Trim();
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(url); //加载XML文件
        XmlNode root = xmlDoc.SelectSingleNode("zhuanye");//查找xinwen节点
        XmlNodeList xnl = root.ChildNodes; //获取xinwen下面所以子节点
        for (int i = 0; i < xnl.Count; i++)
        {
            XmlNodeList xnl11 = xnl.Item(i).SelectNodes("major_id");//查找news_id下面节点集合
            XmlElement xe = (XmlElement)xnl11.Item(0); //news_id节点下面的元素
            if (xe.InnerText.Equals(Convert.ToString(id))) //获取节点以及所有子集的串联值
            {
                xe.InnerText = Convert.ToString(id);
                xe.ParentNode.ChildNodes.Item(1).InnerText = title;
            }
        }
        xmlDoc.Save(url);
        GridView1.EditIndex = -1;
        ReadXML();
    }

原创粉丝点击