ASP.NET操作简单的xml,增删改查
生活随笔
收集整理的這篇文章主要介紹了
ASP.NET操作简单的xml,增删改查
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
溫習一下對xml的簡單操作,貼出來收藏
xml文件格式:
?
<?xml?version="1.0"?encoding="utf-8"?><students>
??<student>
????<id>4</id>
????<name>肖品4</name>
????<age>21</age>
??</student>
??<student>
????<id>5</id>
????<name>肖品5</name>
????<age>22</age>
??</student>
??<student>
????<id>1</id>
????<name>肖品1</name>
????<age>18</age>
??</student>
??<student>
????<id>2</id>
????<name>肖品2</name>
????<age>19</age>
??</student>
??<student>
????<id>3</id>
????<name>肖品3</name>
????<age>20</age>
??</student>
</students>
?
?
XMLtoDataSet.aspx 這個頁面包含了增刪改查
?
using?System;using?System.Collections.Generic;
using?System.Linq;
using?System.Web;
using?System.Web.UI;
using?System.Web.UI.WebControls;
using?System.Data;
using?System.Xml;
using?System.IO;
namespace?XMLWEB
{
????public?partial?class?XMLtoDataSet?:?System.Web.UI.Page
????{
????????protected?void?Page_Load(object?sender,?EventArgs?e)
????????{
????????????if?(!IsPostBack)
????????????{
????????????????LoadGridView();
????????????}
????????}
????????private?void?LoadGridView()
????????{
????????????//轉換一個XML文件(本地\網絡均可)為一個DataSet
????????????DataSet?ds?=?new?DataSet();
????????????//ds?=?XMLDataSetConverter.ConvertXMLFileToDataSet(Server.MapPath("xmltodataset.xml"));
????????????//ds?=?XMLDataSetConverter.ConvertXMLFileToDataSet("http://news.baidu.com/n?cmd=1&class=sportnews&tn=rss");
????????????//foreach?(DataRow?row?in?ds.Tables[0].Rows)
????????????//{
????????????//????string?name?=?row["name"].ToString();
????????????//????string?age?=?row["age"].ToString();
????????????//}
????????????StringReader?sreader?=?null;
????????????XmlTextReader?xtreader?=?null;
????????????try
????????????{
????????????????XmlDocument?doc?=?new?XmlDocument();
????????????????doc.Load(Server.MapPath("xmltodataset.xml"));
????????????????
????????????????sreader?=?new?StringReader(doc.InnerXml);
????????????????xtreader?=?new?XmlTextReader(sreader);
????????????????ds.ReadXml(xtreader);
????????????}
????????????catch?(Exception)
????????????{
????????????????throw;
????????????}
????????????finally
????????????{
????????????????xtreader.Close();
????????????????sreader.Close();
????????????}
????????????this.GridView1.DataSource?=?ds.Tables[0];
????????????this.GridView1.DataBind();
????????}
????????protected?void?Button1_Click(object?sender,?EventArgs?e)
????????{
????????????this.Add();
????????}
????????protected?void?Button2_Click(object?sender,?EventArgs?e)
????????{
????????????this.Update();
????????}
????????protected?void?GridView1_RowCommand(object?sender,?GridViewCommandEventArgs?e)
????????{
????????????if?(e.CommandName?==?"edi")
????????????{?
????????????????//通過ID?獲取對象,給控件賦值
????????????????string[]?entity?=?this.GetEntity(e.CommandArgument.ToString()).Split('|');
????????????????this.TextBox4.Text?=?entity[0];
????????????????this.TextBox5.Text?=?entity[1];
????????????????this.TextBox6.Text?=?entity[2];
????????????}
????????????else?if?(e.CommandName?==?"del")
????????????{?
???????????????//通過ID刪除對象
????????????????this.Delete(e.CommandArgument.ToString());
????????????}
????????}
????????private?void?Add()
????????{
????????????string?id?=?this.TextBox1.Text;
????????????string?name?=?this.TextBox2.Text;
????????????string?age?=?this.TextBox3.Text;
????????????//在第一個前面插入一條信息
????????????XmlDocument?doc?=?new?XmlDocument();
????????????doc.Load(Server.MapPath("xmltodataset.xml"));
????????????XmlNode?students?=?doc.SelectSingleNode("students");
????????????XmlElement?student?=?doc.CreateElement("student");
????????????//student.SetAttribute("id",id);
????????????XmlElement?ele_id?=?doc.CreateElement("id");
????????????ele_id.InnerText?=?id;
????????????student.AppendChild(ele_id);
????????????XmlElement?ele_name?=?doc.CreateElement("name");
????????????ele_name.InnerText?=?name;
????????????student.AppendChild(ele_name);
????????????XmlElement?ele_age?=?doc.CreateElement("age");
????????????ele_age.InnerText?=?age;
????????????student.AppendChild(ele_age);
????????????students.InsertBefore(student,students.FirstChild);
????????????doc.Save(Server.MapPath("xmltodataset.xml"));
????????????//重新加載GridView
????????????LoadGridView();
????????????this.TextBox1.Text?=?"";
????????????this.TextBox2.Text?=?"";
????????????this.TextBox3.Text?=?"";
????????}
????????private?void?Delete(string?id)
????????{
????????????//通過ID獲取信息
????????????XmlDocument?doc?=?new?XmlDocument();
????????????doc.Load(Server.MapPath("xmltodataset.xml"));
????????????XmlNode?students?=?doc.SelectSingleNode("students");
????????????foreach?(XmlNode?student?in?students.ChildNodes)
????????????{
????????????????XmlNode?node_id?=?student.FirstChild;
????????????????if?(node_id.InnerText?==?id)
????????????????{
????????????????????student.ParentNode.RemoveChild(student);
????????????????}
????????????}
????????????doc.Save(Server.MapPath("xmltodataset.xml"));
????????????LoadGridView();
????????}
????????private?void?Update()
????????{
????????????string?id?=?this.TextBox4.Text;
????????????string?name?=?this.TextBox5.Text;
????????????string?age?=?this.TextBox6.Text;
????????????//通過ID獲取信息,然后更改信息
????????????XmlDocument?doc?=?new?XmlDocument();
????????????doc.Load(Server.MapPath("xmltodataset.xml"));
????????????XmlNode?students?=?doc.SelectSingleNode("students");
????????????foreach?(XmlNode?student?in?students.ChildNodes)
????????????{
????????????????XmlNode?temp_node?=?student.FirstChild;
????????????????if?(temp_node.InnerText?==?id)
????????????????{
????????????????????//第一種方式
????????????????????//student.RemoveAll();
????????????????????//XmlElement?ele_id?=?doc.CreateElement("id");
????????????????????//ele_id.InnerText?=?id;
????????????????????//student.AppendChild(ele_id);
????????????????????//XmlElement?ele_name?=?doc.CreateElement("name");
????????????????????//ele_name.InnerText?=?name;
????????????????????//student.AppendChild(ele_name);
????????????????????//XmlElement?ele_age?=?doc.CreateElement("age");
????????????????????//ele_age.InnerText?=?age;
????????????????????//student.AppendChild(ele_age);
????????????????????//第二種方式
????????????????????student.ChildNodes[0].InnerText?=?id;
????????????????????student.ChildNodes[1].InnerText?=?name;
????????????????????student.ChildNodes[2].InnerText?=?age;
????????????????????doc.Save(Server.MapPath("xmltodataset.xml"));
????????????????????break;
????????????????}
????????????}
????????????LoadGridView();
????????}
????????private?string?GetEntity(string?id)
????????{
????????????string?entity?=?"";
????????????XmlDocument?doc?=?new?XmlDocument();
????????????doc.Load(Server.MapPath("xmltodataset.xml"));
????????????XmlNode?students?=?doc.SelectSingleNode("students");
???????????
????????????foreach?(XmlNode?student?in?students.ChildNodes)
????????????{
????????????????XmlNode?temp_node?=?student.FirstChild;
????????????????if?(temp_node.InnerText?==?id)
????????????????{
????????????????????foreach?(XmlNode?item?in?student.ChildNodes)
????????????????????{
????????????????????????entity?+=?item.InnerText?+?"|";
????????????????????}
????????????????????entity?=?entity.Substring(0,entity.Length?-1);
????????????????????break;
????????????????}
????????????}
????????????return?entity;
????????}
????}
}
?
?項目示例下載:XMLDemo.rar
總結
以上是生活随笔為你收集整理的ASP.NET操作简单的xml,增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TV Battle --HOJ 1191
- 下一篇: 微软同步框架入门之五--使用WCF同步远