Asp.net 处理 XML 文件的详细代码

Asp.net编程时经常遇到操作XML文件的情形,这里引用了asp.net写入XML的3 种方式,以及asp.net对xml文件的操作代码:

<?xml version="1.0" encoding="utf-8"?>
<MyCalendar>
  <Event>
    <ShortDesc>生日快乐</ShortDesc>
    <DetailDesc>今天是我的生日今天是我的生日今天是我的生日今天是我的生日今天是我的生日</DetailDesc>
    <EventDate>2007-02-25</EventDate>
    <StartTime>00:00</StartTime>
    <EndTime>24:00</EndTime>
  </Event>
  <Event>
    <ShortDesc>第一金</ShortDesc>
    <DetailDesc>北京奥运会</DetailDesc>
    <EventDate>2007-02-26</EventDate>
    <StartTime>16:00</StartTime>
    <EndTime>17:00</EndTime>
  </Event>

</MyCalendar>

 


//第一种添加方法
   string sEvent = "<Event>";
   sEvent = "<ShortDesc>" this.txt_Event.Text "</ShortDesc>";
   sEvent = "<DetailDesc>" this.txt_Discript.Text "</DetailDesc>";
   sEvent = "<EventDate>" this.txt_Time.Text "</EventDate>";
   sEvent = "<StartTime>" this.txt_startTime.Text "</StartTime>";
   sEvent = "<EndTime>" this.txt_endTIme.Text "</EndTime>";
   sEvent ="</Event>";

   XmlDocument xmlDoc = new XmlDocument();

   xmlDoc.Load(Server.MapPath("MyCalendar.xml"));

   XmlDocumentFragment docFrag = xmlDoc.CreateDocumentFragment();
   docFrag.InnerXml = sEvent;

   xmlDoc.DocumentElement.InsertAfter(docFrag,xmlDoc.DocumentElement.LastChild);

   xmlDoc.Save(Server.MapPath("MyCalendar.xml"));

   //第二种添加方法
   XmlDocument xmlDoc = new XmlDocument();
   xmlDoc.Load(Server.MapPath("MyCalendar.xml"));

   XmlNode root = xmlDoc.SelectSingleNode("MyCalendar");

   XmlElement child = xmlDoc.CreateElement("Event");

   XmlElement ShortDesc = xmlDoc.CreateElement("ShortDesc");
   ShortDesc.InnerText = this.txt_Event.Text;
   XmlElement DetailDesc = xmlDoc.CreateElement("DetailDesc");
   DetailDesc.InnerText = this.txt_Discript.Text;
   XmlElement EventDate = xmlDoc.CreateElement("EventDate");
   EventDate.InnerText = this.txt_Time.Text;
   XmlElement StartTime = xmlDoc.CreateElement("StartTime");
   StartTime.InnerText = this.txt_startTime.Text;
   XmlElement EndTime = xmlDoc.CreateElement("EndTime");
   EndTime.InnerText = this.txt_endTIme.Text;

   child.AppendChild(ShortDesc);
   child.AppendChild(DetailDesc);
   child.AppendChild(EventDate);
   child.AppendChild(StartTime);
   child.AppendChild(EndTime);

   root.AppendChild(child);

   xmlDoc.Save(Server.MapPath("MyCalendar.xml"));

 

   //第三种添加方法

private void btn_submit_Click(object sender, System.EventArgs e)
  {
   //文件路径
   string strFilePath = Server.MapPath("xml/liuyan.xml");  
   FileStream fs = new FileStream(strFilePath,System.IO.FileMode.Open,System.IO.FileAccess.Read);

   DataSet ds=new DataSet();
   //ds.ReadXml(fs);
   //读取xml schema
   ds.ReadXml(fs);

   fs.Close();

   DataRow newRow = ds.Tables[0].NewRow();
   newRow["name"] = this.txt_name.Text;
   newRow["mail"] = this.txt_mail.Text;
   newRow["qq"] = this.txt_qq.Text;
   newRow["address"] = this.txt_address.Text;
   newRow["content"] = this.txt_content.Text;

   ds.Tables[0].Rows.Add(newRow);

   FileStream fin = new FileStream(strFilePath,FileMode.Open,FileAccess.Write,FileShare.ReadWrite);

   ds.WriteXml(fin);
   fin.Close();
   //写入成功
   //Response.Write("写入成功");
   Response.Redirect("viewxml.aspx");

  }


以下代码是Asp.net对XML文件的增删改查等操作:

using System;
using System.Data;
using System.Configuration;
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;
using System.Xml.XPath;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            fill();
        }
    }

    protected void fill()
    {
        DataSet Ds = new DataSet();
        Ds.ReadXml(Server.MapPath("app_data/ad.xml"));
        DataList1.DataSource = Ds.Tables[0].DefaultView;
        DataList1.DataBind();
        Session["DS"] = Ds;

    }
    protected void Button1_Click(object sender, EventArgs e)
    {

    }
    protected void Button2_Click(object sender, EventArgs e)
    {

    }
    protected void Button3_Click(object sender, EventArgs e)
    {

    }
    protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
    {
        DataList1.EditItemIndex = -1;
        fill();
    }
    protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
    {
        DataSet ds=(DataSet)Session["DS"];
        ds.Tables[0].Rows.Remove(ds.Tables[0].Rows[e.Item.ItemIndex]);

        Session["DS"] = ds;
        ds.WriteXml(Server.MapPath("app_data/ad.xml"));
        fill();
    }
    protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
    {
        DataList1.EditItemIndex = e.Item.ItemIndex;
        fill();
    }
    protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
    {
        DataSet ds = (DataSet)Session["Ds"];

        ds.Tables[0].Rows[e.Item.ItemIndex]["ImageUrl"]=((TextBox)(e.Item.FindControl("TextBox1"))).Text.ToString();
        ds.Tables[0].Rows[e.Item.ItemIndex]["NavigateUrl"]=((TextBox)(e.Item.FindControl("TextBox2"))).Text.ToString();
        ds.Tables[0].Rows[e.Item.ItemIndex]["alternateText"]=((TextBox)(e.Item.FindControl("TextBox3"))).Text.ToString();
        ds.Tables[0].Rows[e.Item.ItemIndex]["KeyWord"]=((TextBox)(e.Item.FindControl("TextBox4"))).Text.ToString();
        ds.Tables[0].Rows[e.Item.ItemIndex]["Impression"]=((TextBox)(e.Item.FindControl("TextBox5"))).Text.ToString();

        Session["DS"]=ds;

        ds.WriteXml(Server.MapPath("app_data/ad.xml"));

        DataList1.EditItemIndex=-1;
        fill();

       
    }
    protected void Button6_Click(object sender, EventArgs e)
    {
        DataSet ds = (DataSet)Session["DS"];

        DataRow dr = ds.Tables[0].NewRow();
        dr["ImageUrl"] = TextBox6.Text.ToString();
        dr["NavigateUrl"] = TextBox7.Text.ToString();
        dr["alternateText"] = TextBox8.Text.ToString();
        dr["KeyWord"] = TextBox9.Text.ToString();
        dr["Impression"] = TextBox10.Text.ToString();

        ds.Tables[0].Rows.Add(dr);
        Session["DS"] = ds;

        ds.WriteXml(Server.MapPath("app_data/ad.xml"));

        fill();
    }
}


<?xml version="1.0" standalone="yes"?>
<advertisements>
  <ad>
    <ImageUrl>ssddf</ImageUrl>
    <NavigateUrl>ssdfdgdf</NavigateUrl>
    <alternateText>sdssd</alternateText>
    <KeyWord>sdds</KeyWord>
    <Impression>dssdds</Impression>
  </ad>
  <ad>
    <ImageUrl>eeoppo</ImageUrl>
    <NavigateUrl>eepopo</NavigateUrl>
    <alternateText>eeppoo</alternateText>
    <KeyWord>eepop</KeyWord>
    <Impression>eeopop</Impression>
  </ad>
  <ad>
    <ImageUrl>ee</ImageUrl>
    <NavigateUrl>w</NavigateUrl>
    <alternateText>w1</alternateText>
    <KeyWord>1e</KeyWord>
    <Impression>eeee</Impression>
  </ad>

</advertisements>


<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_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>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
                 
<table width="700" border="0" cellpadding="2" cellspacing="2" bordercolor="#ffffff" bgcolor="#cccccc">
  <tr bgcolor="#ffffff">
    <td style="width: 81px"> ImageUrl</td>
    <td colspan="2" style="width: 141px">
        <asp:TextBox ID="TextBox6" runat="server"></asp:TextBox></td>
  </tr>
  <tr bgcolor="#ffffff">
    <td style="width: 81px; height: 28px;"> NavigateUrl</td>
    <td colspan="2" style="width: 141px; height: 28px;">
        <asp:TextBox ID="TextBox7" runat="server"></asp:TextBox></td>
  </tr>
  <tr bgcolor="#ffffff">
    <td style="width: 81px; height: 28px;"> alternateText</td>
    <td colspan="2" style="width: 141px; height: 28px;">
        <asp:TextBox ID="TextBox8" runat="server"></asp:TextBox></td>
  </tr>
  <tr bgcolor="#ffffff">
    <td style="width: 81px"> KeyWord</td>
    <td colspan="2" style="width: 141px">
        <asp:TextBox ID="TextBox9" runat="server"></asp:TextBox></td>
  </tr>
  <tr bgcolor="#ffffff">
    <td style="width: 81px"> Impression</td>
    <td colspan="2" style="width: 141px">
        <asp:TextBox ID="TextBox10" runat="server"></asp:TextBox></td>
  </tr>
  <tr bgcolor="#ffffff">
    <td colspan="3" align="center">
          
        <asp:Button ID="Button6" runat="server" OnClick="Button6_Click" Text="Button" /></td>
  </tr>
</table>
        <br />
        <asp:DataList ID="DataList1" runat="server" OnCancelCommand="DataList1_CancelCommand" OnDeleteCommand="DataList1_DeleteCommand" OnEditCommand="DataList1_EditCommand" OnUpdateCommand="DataList1_UpdateCommand" RepeatColumns="2">
            <ItemTemplate>
                <table width="350" border="0" cellpadding="2" cellspacing="2" bordercolor="#ffffff" bgcolor="#cccccc">
  <tr bgcolor="#ffffff">
    <td style="width: 81px"> ImageUrl</td>
    <td colspan="2" style="width: 142px"> <asp:Label ID="Label1" runat="server" Text=<%# Eval("ImageUrl") %>></asp:Label></td>
  </tr>
  <tr bgcolor="#ffffff">
    <td style="width: 81px"> NavigateUrl</td>
    <td colspan="2" style="width: 142px"> <asp:Label ID="Label2" runat="server" Text=<%# Eval("NavigateUrl") %>></asp:Label></td>
  </tr>
  <tr bgcolor="#ffffff">
    <td style="width: 81px; height: 23px;"> alternateText</td>
    <td colspan="2" style="width: 142px; height: 23px;"> <asp:Label ID="Label3" runat="server" Text=<%# Eval("alternateText") %>></asp:Label></td>
  </tr>
  <tr bgcolor="#ffffff">
    <td style="width: 81px"> KeyWord</td>
    <td colspan="2" style="width: 142px"> <asp:Label ID="Label4" runat="server" Text=<%# Eval("KeyWord") %>></asp:Label></td>
  </tr>
  <tr bgcolor="#ffffff">
    <td style="width: 81px"> Impression</td>
    <td colspan="2" style="width: 142px"> <asp:Label ID="Label5" runat="server" Text=<%# Eval("Impression") %>></asp:Label></td>
  </tr>
  <tr bgcolor="#ffffff">
    <td colspan="3" align="center"> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="edit" CommandName="edit" />
        <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="delete" CommandName="delete" />
        </td>
  </tr>
</table>
            </ItemTemplate>
            <EditItemTemplate>
                              <table width="350" border="0" cellpadding="2" cellspacing="2" bordercolor="#ffffff" bgcolor="#cccccc">
  <tr bgcolor="#ffffff">
    <td style="width: 81px"> ImageUrl</td>
    <td colspan="2" style="width: 142px"><asp:TextBox ID="TextBox1" runat="server"  Text='<%# Eval("ImageUrl") %>'></asp:TextBox></td>
  </tr>
  <tr bgcolor="#ffffff">
    <td style="width: 81px"> NavigateUrl</td>
    <td colspan="2" style="width: 142px"><asp:TextBox ID="TextBox2" runat="server"  Text=<%# Eval("NavigateUrl") %>></asp:TextBox></td>
  </tr>
  <tr bgcolor="#ffffff">
    <td style="width: 81px; height: 28px;"> alternateText</td>
    <td colspan="2" style="width: 142px; height: 28px;"><asp:TextBox ID="TextBox3" runat="server"  Text=<%# Eval("alternateText") %>></asp:TextBox></td>
  </tr>
  <tr bgcolor="#ffffff">
    <td style="width: 81px"> KeyWord</td>
    <td colspan="2" style="width: 142px"><asp:TextBox ID="TextBox4" runat="server"  Text=<%# Eval("KeyWord") %>></asp:TextBox></td>
  </tr>
  <tr bgcolor="#ffffff">
    <td style="width: 81px"> Impression</td>
    <td colspan="2" style="width: 142px"><asp:TextBox ID="TextBox5" runat="server"  Text=<%# Eval("Impression") %>></asp:TextBox></td>
  </tr>
  <tr bgcolor="#ffffff">
    <td colspan="3" align="center">
        <asp:Button ID="Button4" runat="server" Text="update" CommandName="update" />
        <asp:Button ID="Button5" runat="server" Text="cancel" CommandName="cancel" />
        
    </td>
  </tr>
</table>
                
            </EditItemTemplate>
        </asp:DataList><br />
         </div>
    </form>
</body>
</html>

Google