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

来源:互联网 发布:激战2阿苏拉男捏脸数据 编辑:程序博客网 时间:2024/04/28 23:17
现在随着网络发展,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(
"删除模板失败!请检查路径是否正确,以及模板库中是否还有模板.以及是否有写入权限。");
                }

            
            
        }





        
    }

}

 
原创粉丝点击