C#中Xml文档的运用

XmlDocument xdoc = new XmlDocument();
         protected void Page_Load(object sender, EventArgs e)
         {
             #region
             //XmlReaderSettings settings = new XmlReaderSettings();
             //settings.IgnoreComments = true;//忽略Xml中的注释
             //settings.IgnoreWhitespace = true;//忽略没必要的空白
 
             //using (XmlReader reader = XmlReader.Create(Server.MapPath("books.xml"), settings))//第一个参数需要的是实路径
             //{
             //    int booknum = 0;
             //    while (reader.Read())
             //    {
             //        if (reader.NodeType == XmlNodeType.Element)
             //        {
             //            if (reader.LocalName == "book")
             //            {
             //                booknum++;
             //            }
             //        }
             //    }
             //    Response.Write(booknum);
             //}
 
             //XmlWriterSettings settingsw=new XmlWriterSettings();//write的设置
             //settingsw.Encoding=System.Text.Encoding.UTF8;//编码类型
             //settingsw.Indent=true;
             //using (XmlWriter writere = XmlWriter.Create(Server.MapPath("newbook.xml"), settingsw))
             //{
             //    writere.WriteStartDocument();//开始写版本以及链接
 
             //    writere.WriteStartElement("books");//根节点
 
             //    writere.WriteStartElement("book");//book节点开始
 
             //    writere.WriteStartAttribute("id");//给book添加属性  属性名为id
             //    writere.WriteValue("1");//写入属性值
             //    writere.WriteEndAttribute();//属性编辑结束
 
             //    writere.WriteStartElement("author");//author节点开始
             //    writere.WriteString("乔布斯");//写入author节点内容
             //    writere.WriteEndElement();//结束author节点
 
             //    writere.WriteEndElement();//结束book节点
 
             //    writere.WriteStartElement("book");//book节点开始
             //    writere.WriteStartElement("author");//author节点开始
             //    writere.WriteString("布鲁斯");//写入author节点内容
             //    writere.WriteEndElement();//结束author节点
             //    writere.WriteEndElement();//结束book节点
 
             //    writere.WriteEndElement();//结束books节点
             //    writere.WriteEndDocument();//结束
             //}
             #endregion
             xdoc.Load(Server.MapPath("books.xml"));
             if (!IsPostBack)
             {
                 XmlNodeList xlist = xdoc.GetElementsByTagName("name");//将标记为name的内容提取出来
                 foreach (XmlNode item in xlist)//给前台的一个下拉菜单添加项
                 {
                     DropDownList1.Items.Add(item.InnerText);
                 }
 
             }
             #region
 
 
             //XmlNode nod = xdoc.DocumentElement.SelectSingleNode("book[name='"+DropDownList1.Text+"']");
             //if (nod.LocalName == "author")
             //    TextBox1.Text = nod.InnerText;
             //if (nod.LocalName == "publisher")
             //    TextBox2.Text = nod.InnerText;
             //if (nod.LocalName == "date")
             //    TextBox3.Text = nod.InnerText;
             //if (nod.LocalName == "isbn")
             //    TextBox4.Text = nod.InnerText;
             //if (nod.LocalName == "price")
             //    TextBox5.Text = nod.InnerText;
             #endregion
         }
 
         protected void Button1_Click(object sender, EventArgs e)//显示
         {
             #region
             //XmlDocument xdoc = new XmlDocument();
             //xdoc.Load(Server.MapPath("books.xml"));
             //XmlNodeList xlist = xdoc.GetElementsByTagName("name");
             //foreach (XmlNode item in xlist)
             //{
             //    DropDownList1.Items.Add(item.InnerText);
             //}
             #endregion
             XmlNode nod = xdoc.DocumentElement.SelectSingleNode("book[name='" + DropDownList1.Text + "']");//获取Xml文档中下拉菜单选中的那一组
             foreach (XmlNode item in nod)//用一个循环把内容放到对应的TextBox里面
             {
                 TextBox1.Text = nod.ChildNodes.Item(0).InnerText;
                 TextBox2.Text = nod.ChildNodes.Item(1).InnerText;
                 TextBox3.Text = nod.ChildNodes.Item(2).InnerText;
                 TextBox4.Text = nod.ChildNodes.Item(4).InnerText;
                 TextBox5.Text = nod.ChildNodes.Item(5).InnerText;
                 #region
                 //if (nod.ChildNodes.Item(1) == "author")
                 //    TextBox1.Text = item.InnerText;
                 //if (nod.LocalName == "publisher")
                 //    TextBox2.Text = item.InnerText;
                 //if (nod.LocalName == "date")
                 //    TextBox3.Text = item.InnerText;
                 //if (nod.LocalName == "isbn")
                 //    TextBox4.Text = item.InnerText;
                 //if (nod.LocalName == "price")
                 //    TextBox5.Text = item.InnerText;
                 #endregion
             }
         }
 
         protected void Button2_Click(object sender, EventArgs e)//移除
         {
             XmlNode nod = xdoc.DocumentElement.SelectSingleNode("book[name='" + DropDownList1.Text + "']");//获取Xml文档中下拉菜单选中的那一组
             xdoc.DocumentElement.RemoveChild(nod);//移除Xml文档中的项
             DropDownList1.Items.Remove(DropDownList1.SelectedItem);//移除下拉菜单中的项
             xdoc.Save(Server.MapPath("books.xml"));//将修改完的Xml存到Xml文档
         }
 
         protected void Button3_Click(object sender, EventArgs e)//修改
         {
             XmlNode nod = xdoc.DocumentElement.SelectSingleNode("book[name='" + DropDownList1.Text + "'");//获取Xml文档中下拉菜单选中的那一组
             nod.SelectSingleNode("author").InnerText = TextBox1.Text;//将对应的TextBox中的内容放到Xml文档的对应标记里面
             nod.SelectSingleNode("publisher").InnerText = TextBox2.Text;
             nod.SelectSingleNode("date").InnerText = TextBox3.Text;
             nod.SelectSingleNode("isbn").InnerText = TextBox4.Text;
             nod.SelectSingleNode("price").InnerText = TextBox5.Text;
             xdoc.Save(Server.MapPath("books.xml"));//保存Xml文档
             //Page.RegisterClientScriptBlock("key1", "<script>alert('ok!');</script>");
             this.ClientScript.RegisterClientScriptBlock(this.GetType(),"key2","<script>alert('ok!');</script>");//插入脚本,一个小提示
             #region
             //DropDownList1.Items.Clear();
             //XmlNodeList xlist = xdoc.GetElementsByTagName("name");
             //foreach (XmlNode item in xlist)
             //{
             //    DropDownList1.Items.Add(item.InnerText);
             //}
             #endregion
         }
 
         protected void Button4_Click(object sender, EventArgs e)//添加
         {
             XmlElement bo = xdoc.CreateElement("book");//创建新的标记book,并将其放到bo里面
             XmlElement au = xdoc.CreateElement("author");//创建新的标记au,并将其放到au里面
             au.AppendChild(xdoc.CreateTextNode(TextBox1.Text));//给标记au增添内容
             XmlElement pu = xdoc.CreateElement("publisher");
             pu.AppendChild(xdoc.CreateTextNode(TextBox2.Text));
             XmlElement na = xdoc.CreateElement("name");
             na.AppendChild(xdoc.CreateTextNode(TextBox6.Text));
             XmlElement da = xdoc.CreateElement("date");
             da.AppendChild(xdoc.CreateTextNode(TextBox3.Text));
             XmlElement si = xdoc.CreateElement("isbn");
             si.AppendChild(xdoc.CreateTextNode(TextBox4.Text));
             XmlElement pr = xdoc.CreateElement("price");
             pr.AppendChild(xdoc.CreateTextNode(TextBox5.Text));
             bo.AppendChild(au);//将对象节点对象au放到节点对象bo里面
             bo.AppendChild(pu);
             bo.AppendChild(na);
             bo.AppendChild(da);
             bo.AppendChild(si);
             bo.AppendChild(pr);
             xdoc.DocumentElement.AppendChild(bo);//将包含au、pu等节点的bo节点放到xdoc里面
             this.DropDownList1.Items.Add(this.TextBox6.Text);//给下拉菜单增添项
             xdoc.Save(Server.MapPath("books.xml"));//保存
             ClientScript.RegisterClientScriptBlock(this.GetType(),"key3","<script type='text/javascript'>alert('ok!');</script>");
         }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值