asp.net中对XML文件进行操作(增、删、改、查)

    技术2022-05-11  84

    现在随着网络发展,xml的应用也被不断应用到网络中.本篇主要是针对对Xml的应用进行一些实际操作.代码稚嫩.供自学..HOHO~~ 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; namespace  DVBAres_C2._2 {    /// <summary>    /// Information_page_templates 的摘要说明。    /// </summary>    public class Information_page_templates : System.Web.UI.Page    {        protected System.Web.UI.WebControls.TextBox tbNewTemplatesName;        protected System.Web.UI.WebControls.Button btnChange;        protected System.Web.UI.WebControls.TextBox TextBoxTemplatesName;        protected System.Web.UI.WebControls.Button btnQuery;        protected System.Web.UI.WebControls.DropDownList ddlName;        protected System.Web.UI.WebControls.Button btnDelete;        protected System.Web.UI.WebControls.Label dgTitle;        protected System.Web.UI.WebControls.Button Button_NewTemplates;        protected System.Web.UI.WebControls.DataGrid dgShow;            private void Page_Load(object sender, System.EventArgs e)        {            // 在此处放置用户代码以初始化页面            try            {                if(!IsPostBack)                {                    Bind();                                    }                                }            catch            {                Response.Write("没有发现模板库中有任何模板!!!");            }                    btnDelete.Attributes.Add("onclick","return confirm('你确定要删除该模板吗?')");                    }        Web 窗体设计器生成的代码        private void Bind()        {            //XML数据绑定            DataSet ds = new DataSet();            ds.ReadXml(Server.MapPath("./Templates/Statistical_charts_types_templates.xml"));            dgShow.DataSource = ds.Tables[0].DefaultView;            dgShow.DataBind();            XmlDocument doc = new XmlDocument();            doc.Load(Server.MapPath("./Templates/Statistical_charts_types_templates.xml"));            XmlNodeList elemList = doc.GetElementsByTagName("TemplatesName");            ddlName.Items.Clear();            for(int i=0;i<elemList.Count;i++)                ddlName.Items.Add(elemList[i].InnerXml);            //XmlTemplates=ddlName.SelectedItem.Value;        }        private void Button_NewTemplates_Click(object sender, System.EventArgs e)        {            string fileName = Server.MapPath(@".TemplatesStatistical_charts_types_templates.xml");   //要打开的文件            try            {                XmlDocument xmlDoc = new XmlDocument();                xmlDoc.Load(fileName);                XmlNode root=xmlDoc.SelectSingleNode("DVBAres");//查找<Dvb>                XmlNodeList xnl=xmlDoc.SelectSingleNode("DVBAres").ChildNodes;                int nIndex = xnl.Count;                //以下添加新结点                XmlElement xe1=xmlDoc.CreateElement("Templates");//创建一个Templates节点                XmlElement xesub1=xmlDoc.CreateElement("TemplatesID");                xesub1.InnerText=nIndex.ToString();//设置文本节点                xe1.AppendChild(xesub1);//添加到Templates节点中                XmlElement xesub2=xmlDoc.CreateElement("TemplatesName");                xesub2.InnerText=TextBox_TemplatesName.Text;                xe1.AppendChild(xesub2);                XmlElement xesub3=xmlDoc.CreateElement("TemplatesChan");                xesub3.InnerText=Chan_List.SelectedItem.Value;//获取下拉列表索引值                //xesub3.InnerText=Chan_List.SelectedItem.Text;//获取下拉列表TEXT                xe1.AppendChild(xesub3);                XmlElement xesub4=xmlDoc.CreateElement("TemplatesErr");                xesub4.InnerText=Err_List.SelectedValuesToString();                //xesub4.InnerText=Err_List.SelectedLabelsToString();                xe1.AppendChild(xesub4);                XmlElement xesub5=xmlDoc.CreateElement("TemplatesStat");                xesub5.InnerText=DropDownListStat.SelectedItem.Value;                //xesub5.InnerText=DropDownListStat.SelectedItem.Text;                xe1.AppendChild(xesub5);                root.AppendChild(xe1);//添加到<Dvb>节点中                xmlDoc.Save(fileName);                Page.Response.Write("生成模版成功!");            }            catch            {                Page.Response.Write("生成模板失败!请检查路径是否正确,以及是否有写入权限。");            }        }        private void btnChange_Click(object sender, System.EventArgs e)        {            try            {                XmlDocument xmlDoc = new XmlDocument();                xmlDoc.Load(Server.MapPath("./Templates/Statistical_charts_types_templates.xml"));                XmlNodeList nodeList=xmlDoc.SelectSingleNode("DVBAres").ChildNodes;//获取dbGuest节点的所有子节点                foreach(XmlNode xn in nodeList)//遍历所有子节点                {                    XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型                                XmlNodeList node = xe.GetElementsByTagName("TemplatesName");                    if(node.Count>0)                    {                        if(node[0].InnerText==ddlName.SelectedItem.Text)                        {                            XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点                            foreach(XmlNode xn1 in nls)//遍历                            {                                XmlElement xe2=(XmlElement)xn1;//转换类型                                if(xe2.Name=="TemplatesName")//如果找到                                {                                    xe2.InnerText=this.tbNewTemplatesName.Text;//则修改                                    break;//找到退出来就可以了                                }                            }                            break;                        }                    }                                }                xmlDoc.Save(Server.MapPath("./Templates/Statistical_charts_types_templates.xml"));                Bind();                Page.Response.Write("修改成功!");            }            catch            {                Page.Response.Write("你要查看的文件路径不对,请检查路径是否正确,以及是否有写入权限");            }        }        private void btnQuery_Click(object sender, System.EventArgs e)        {            try            {                XmlDocument doc = new XmlDocument();                doc.Load(Server.MapPath("./Templates/Statistical_charts_types_templates.xml"));                TextBoxTemplatesName.Text = doc.SelectSingleNode("//Templates[TemplatesName='"+ddlName.SelectedItem.Text+"']").ChildNodes.Item(1).InnerText;            }            catch            {                Page.Response.Write("你要查看的文件路径不对,请检查路径是否正确");            }        }        private void btnDelete_Click(object sender, System.EventArgs e)        {                                        try                {                                XmlDocument xmlDoc = new XmlDocument();                    xmlDoc.Load(Server.MapPath("./Templates/Statistical_charts_types_templates.xml"));                    XmlNodeList xnl=xmlDoc.SelectSingleNode("DVBAres").ChildNodes;                     foreach(XmlNode xn in xnl)                    {                        XmlElement xe=(XmlElement)xn;                        XmlNodeList node = xe.GetElementsByTagName("TemplatesName");                        if(node.Count>0)                        {                            if(node[0].InnerText==ddlName.SelectedItem.Text)                            {                                xe.RemoveAll();//删除该节点的全部内容                                break;                            }                        }                                                }                    xmlDoc.Save(Server.MapPath("./Templates/Statistical_charts_types_templates.xml"));                    Bind();                            Page.Response.Write("删除模版成功!");                }                            catch                {                    Page.Response.Write("删除模板失败!请检查路径是否正确,以及模板库中是否还有模板.以及是否有写入权限。");                }                                }            }}  

    最新回复(0)