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

C#操作xml的类

2011-05-29 19:39 246 查看
C#对xml文件记录的增加,修改和删除,例如对UserCode,UserName,NamePwd的操作。代码如下:

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;

/**//// <summary>
/// Xml文件的读写类
/// </summary>
///
public class XmlRW
...{
public XmlRW()
...{
//
// TODO: 在此处添加构造函数逻辑
//
}

//WriteXml 完成对User的添加操作
//FileName 当前xml文件的存放位置
//UserCode 欲添加用户的编码
//UserName 欲添加用户的姓名
//UserPassword 欲添加用户的密码

public void WriteXML(string FileName,string UserCode,string UserName,string UserPassword)
...{

//初始化XML文档操作类
XmlDocument myDoc = new XmlDocument();
//加载XML文件
myDoc.Load(FileName);

//添加元素--UserCode
XmlElement ele = myDoc.CreateElement("UserCode");
XmlText text = myDoc.CreateTextNode(UserCode);

//添加元素--UserName
XmlElement ele1 = myDoc.CreateElement("UserName");
XmlText text1 = myDoc.CreateTextNode(UserName);

//添加元素--UserPwd
XmlElement ele2 = myDoc.CreateElement("UserPwd");
XmlText text2 = myDoc.CreateTextNode(UserPassword);

//添加节点 User要对应我们xml文件中的节点名字
XmlNode newElem = myDoc.CreateNode("element", "User", "");

//在节点中添加元素
newElem.AppendChild(ele);
newElem.LastChild.AppendChild(text);
newElem.AppendChild(ele1);
newElem.LastChild.AppendChild(text1);
newElem.AppendChild(ele2);
newElem.LastChild.AppendChild(text2);

//将节点添加到文档中
XmlElement root = myDoc.DocumentElement;
root.AppendChild(newElem);

//保存
myDoc.Save(FileName);

}

//DeleteNode 完成对User的添加操作
//FileName 当前xml文件的存放位置
//UserCode 欲添加用户的编码

public void DeleteNode(string FileName, string UserCode)
...{
//初始化XML文档操作类
XmlDocument myDoc = new XmlDocument();
//加载XML文件
myDoc.Load(FileName);

//搜索指定某列,一般是主键列
XmlNodeList myNode = myDoc.SelectNodes("//UserCode");

//判断是否有这个节点

if (!(myNode == null))
...{
//遍历节点,找到符合条件的元素

foreach (XmlNode  xn in myNode)
...{
if (xn.InnerXml  == UserCode)
//删除元素的父节点
xn.ParentNode.ParentNode.RemoveChild(xn.ParentNode);
}
}

//保存
myDoc.Save(FileName);

}

//WriteXml 完成对User的修改密码操作
//FileName 当前xml文件的存放位置
//UserCode 欲操作用户的编码
//UserPassword 欲修改用户的密码

public void UpdateXML(string FileName, string UserCode, string UserPassword)
...{

//初始化XML文档操作类
XmlDocument myDoc = new XmlDocument();
//加载XML文件
myDoc.Load(FileName);

//搜索指定的节点
System.Xml.XmlNodeList nodes = myDoc.SelectNodes("//User");

if (nodes != null)
...{
foreach (System.Xml.XmlNode xn in nodes)
...{
if (xn.SelectSingleNode("UserCode").InnerText == UserCode)
...{
xn.SelectSingleNode("UserPwd").InnerText = UserPassword;
}

}
}

myDoc.Save(FileName);

}

}


下面的代码是对XML的增删改的简单操作(注意xml要事先先建好才行),如下:

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;

public partial class XmlTest1 : System.Web.UI.Page
...{
protected void Page_Load(object sender, EventArgs e)
...{

}

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

//添加引用,创建实例
XmlRW myXml = new XmlRW();
//调用我们实现定义好的方法,对应传入各个参数
myXml.WriteXML(Server.MapPath("YtConfig.xml"), TextBox1.Text, TextBox2.Text, TextBox3.Text);

Response.Write("Save OK!");

}
protected void Button2_Click(object sender, EventArgs e)
...{
XmlRW myXml = new XmlRW();
myXml.DeleteNode(Server.MapPath("YtConfig.xml"), TextBox1.Text );

Response.Write("Delete OK!");

}
protected void Button3_Click(object sender, EventArgs e)
...{
XmlRW myXml = new XmlRW();
myXml.UpdateXML(Server.MapPath("YtConfig.xml"), TextBox1.Text, TextBox3.Text );

Response.Write("Update OK!");

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: