您的位置:首页 > 编程语言 > ASP

asp.net(C#) Xml操作(增删改查)练习

2009-01-30 00:00 766 查看
web.config配置:
<appSettings> 
<add key="xmlFile" value="xml/class.xml"/> 
</appSettings> 
<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;" 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> 
<%@ 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;" 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); 
} 
} 
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.jb51.net</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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: