C#中Xml文档的运用
来源:互联网 发布:算法统宗 pdf 下载 编辑:程序博客网 时间:2024/06/06 06:37
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>"); }