C#操作Xml(增删改查)练习
C#操作Xml(增删改查)练习
web.config配置:
- <appSettings>
- <add key="xmlFile" value="xml/class.xml"/>
- </appSettings>
前台:
- <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="test_Default" %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" >
- <head runat="server">
- <title>C#操作Xml(增删改查)练习</title>
- </head>
- <body>
- <form id="form1" runat="server">
- <div id="showXml" runat="server">
- 显示Xml文档
- </div>
- <div style="background-color:Green;color:Yellow;" mce_style="background-color:Green;color:Yellow;">为html控件绑定服务器控件的两个要点:<br />
- 1.onserverclick="serverMethod"这里只写方法名.<br />
- 2.后台代码,必须是<br />
- protected void XmlAdd(object sender, EventArgs e){}<br />
- 注意两个参数及保护级.
- </div>
- <input id="btnAdd" type="button" value="add" runat="server" onserverclick="XmlAdd" />
- <input id="btnDelete" type="button" value="delete" runat="server" onserverclick="XmlDelete" />
- <input id="btnUpdate" type="button" value="update" runat="server" onserverclick="XmlUpdate" />
- <input id="btnQuery" type="button" value="query" runat="server" onserverclick="XmlQuery" />
- </form>
- </body>
- </html>
后台:
- using System;
- using System.Data;
- using System.Configuration;
- using System.Collections;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- using System.Xml;
- public partial class test_Default : System.Web.UI.Page
- {
- string xmlFile = System.Configuration.ConfigurationManager.AppSettings["xmlFile"];
- XmlDocument XmlDoc = new XmlDocument();
- protected void Page_Load(object sender, EventArgs e)
- {
- Bind();
- }
- private void Bind()
- {
- XmlDoc.Load(Server.MapPath("../" + xmlFile));//向上一级
- this.showXml.InnerHtml = System.Web.HttpUtility.HtmlEncode(XmlDoc.InnerXml);
- }
- protected void XmlAdd(object sender, EventArgs e)
- {
- XmlNode objRootNode = XmlDoc.SelectSingleNode("//Root"); //声明XmlNode对象
- XmlElement objChildNode = XmlDoc.CreateElement("Student"); //创建XmlElement对象
- objChildNode.SetAttribute("id", "1");
- objRootNode.AppendChild(objChildNode);
- //
- XmlElement objElement = XmlDoc.CreateElement("Name");//???结点和元素的区别?方法都一样.
- objElement.InnerText = "tree1";
- objChildNode.AppendChild(objElement);
- //保存
- XmlDoc.Save(Server.MapPath("../" + xmlFile));
- }
- protected void XmlDelete(object sender, EventArgs e)
- {
- string Node = "//Root/Student[Name='tree1']";//Xml是严格区分大小写的.
- XmlDoc.SelectSingleNode(Node).ParentNode.RemoveChild(XmlDoc.SelectSingleNode(Node));
- //保存
- XmlDoc.Save(Server.MapPath("../" + xmlFile));
- }
- protected void XmlUpdate(object sender, EventArgs e)
- {
- //XmlDoc.SelectSingleNode("//Root/Student[Name='tree1']/Name").InnerText = "tree2";
- XmlDoc.SelectSingleNode("//Root/Student[Name='tree1']").Attributes["id"].Value = "001";
- //保存
- XmlDoc.Save(Server.MapPath("../" + xmlFile));
- }
- protected void XmlQuery(object sender, EventArgs e)
- {
- XmlNodeList NodeList = XmlDoc.SelectNodes("//Root/Student");//查询全部的student节点
- //循环遍历节点,查询是否存在该节点
- for (int i = 0; i < NodeList.Count; i++)
- {
- Response.Write(NodeList[i].ChildNodes[0].InnerText);
- }
- //查询单个节点,//表示全部匹配的元素./表示以此为根的子元素.javascript下的查询也是一样.
- string XmlPathNode = "//Root/Student[Name='rock']/Photo";
- Response.Write(XmlDoc.SelectSingleNode(XmlPathNode).InnerText);
- }
- }
xml文件:
- <?xml version="1.0" encoding="gb2312"?>
- <Root>
- <Student Admin="no">
- <Name>rock</Name>
- <NickName>rock1</NickName>
- <Pwd>123</Pwd>
- <Sex>男生</Sex>
- <Birthday>1986-1-1</Birthday>
- <Email>xymac@163.com</Email>
- <QQ>123374355</QQ>
- <Msn>loveplc@live.cn</Msn>
- <Tel>13005129336</Tel>
- <Homepage>http://www.loveplc.cn</Homepage>
- <Address>广州</Address>
- <Work>asp.net菜鸟</Work>
- <Photo>images/rock.gif</Photo>
- <Time>2008-3-18 10:15:29</Time>
- </Student>
- <Student Admin="yes">
- <Name>tree</Name>
- <NickName>宿舍老大</NickName>
- <Pwd>51aspx</Pwd>
- <Sex>男生</Sex>
- <Birthday>
- </Birthday>
- <Email>support@tree.com</Email>
- <QQ>
- </QQ>
- <Msn>
- </Msn>
- <Tel>
- </Tel>
- <Homepage>
- </Homepage>
- <Address>
- </Address>
- <Work>
- </Work>
- <Photo>
- </Photo>
- <Time>2008-3-26 11:39:57</Time>
- </Student>
- <Student>
- <Name>tree2</Name>
- </Student>
- <Student id="001">
- <Name>tree1</Name>
- </Student>
- </Root>
posted on 2010-07-13 00:05 jianshaohui 阅读(503) 评论(0) 编辑 收藏 举报