C#操作Xml

来源:互联网 发布:互动投影 软件 英文 编辑:程序博客网 时间:2024/06/10 13:14

web.config配置:view plaincopy to clipboardprint?
<appSettings> 
  <add key="xmlFile" value="xml/class.xml"/> 
</appSettings> 
  <appSettings>
    <add key="xmlFile" value="xml/class.xml"/>
  </appSettings>  前台:view plaincopy to clipboardprint?
<%@ 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> 
<%@ 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> 后台:view plaincopy to clipboardprint?
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文件:view plaincopy to clipboardprint?
<?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> 

原创粉丝点击