XML的操作

//增加新会员 0表成功,-1表已存在同名会员
userlist.xml的XML文档,其格式如下:


<?xml version="1.0" encoding="utf-8" ?>

<userlist>

<user>

<id>Samuel</id>

<pass>111</pass>

<nickname>Samuel</nickname>

<tel>123456789</tel>

<email>email@email.com</email>

<address>重庆大学</address>

</user>

</userlist>

UserList类将用DOM访问userlist.xml文档(关于DOM,请参阅第三章),并向外提供以下方法:

1). UserVerify方法,用于会员验证。

2). UserAdd方法,用于注册新会员。

3). UserDelete方法,用于删除会员。

4). UserChangePass方法,用于修改单个会员的密码。


在Solution Explorer中右击UserMan工程àAddàAdd New ItemàClass,取名UserList.cs,打开。UserList.cs的代码如下:

using System;

using System.Xml;


namespace UserMan{

public class UserList{

public UserList(){

//构造函数

}


//会员登录 返回0表成功, -1表会员不存在 –2表密码错

public int UserVerify( string sID, string sPass ){

XmlDocument doc = new XmlDocument();

XmlNode node;

XmlElement rootNode;

string sSelect;

doc.Load("c://InetPub//wwwroot//UserMan//userlist.xml"); //装入XML文档

rootNode = doc.DocumentElement; //rootNode指向userlist根结点

sSelect = "descendant::user[id = '" + sID + "' ]";


//node指向ID = sID的user结点

node= rootNode.SelectSingleNode(sSelect);

if (node == null)

return -1; //没找到,说明会员不存在


node = node.ChildNodes[1].ChildNodes[0];

//node指向该user结点的pass结点的文本结点

if ( node.Value != sPass )

return -2; //密码错


return 0; //登录成功

}


public int UserAdd(string sID, string sPass, string sNickname, string sTel,

string sEmail, string sAddress){

XmlDocument doc = new XmlDocument();

XmlNode node;

XmlElement rootNode;

string sSelect;

doc.Load("c://InetPub//wwwroot//UserMan//userlist.xml");

rootNode = doc.DocumentElement;

sSelect = "descendant::user[id = '" + sID + "' ]";

node= rootNode.SelectSingleNode(sSelect);


if (node != null)

return -1; //已存在同名会员


XmlElement elem = doc.CreateElement( "user" ); //新建一个user元素

//注意标记后的空格

string sXml = "<id>" + sID + "</id> " + "<pass>" + sPass + "</pass> " +

"<nickname>" + sNickname + "</nickname> " + "<tel>" + sTel + "</tel> " + "<email>" + sEmail +

"</email> " + "<address>" + sAddress + "</address> ";

elem.InnerXml = sXml; //设定该user元素的内容

rootNode.AppendChild( elem ); //将新加的user元素作为根结点的子结点


doc.Save( "c://InetPub//wwwroot//UserMan//userlist.xml" ); //存盘

return 0;

}

//删除会员 0表成功,-1表会员不存在 –2表密码错

public int UserDelete( string sID, string sPass){

XmlDocument doc = new XmlDocument();

XmlNode node, nodeDelete;

XmlElement rootNode;

string sSelect;

doc.Load("c://InetPub//wwwroot//UserMan//userlist.xml");

rootNode = doc.DocumentElement;

sSelect = "descendant::user[id = '" + sID + "' ]";

//nodeDelete指向准备删除的结点

nodeDelete = node = rootNode.SelectSingleNode(sSelect);

if (node == null)

return -1; //返回会员不存在错误


node = node.ChildNodes[1];


if ( node.InnerText != sPass )

return -2; //密码错

rootNode.RemoveChild( nodeDelete ); //删除该user结点

doc.Save( "c://InetPub//wwwroot//UserMan//userlist.xml" ); //存盘

return 0;

}

//---------------------------------------------------------------------


//修改密码 0表成功 –1表会员不存在 –2表密码错
public int UserChangePass( string sID, string sOldPass, string sNewPass ){

XmlDocument doc = new XmlDocument();

XmlNode node;

XmlElement rootNode;

string sSelect;

doc.Load("c://InetPub//wwwroot//UserMan//userlist.xml");

rootNode = doc.DocumentElement;


sSelect = "descendant::user[id = '" + sID + "' ]";


node= rootNode.SelectSingleNode(sSelect);


if (node == null)

return -1; //返回会员不存在错误


node = node.ChildNodes[1];


if ( node.InnerText != sOldPass )

return -2; //密码错

node.InnerText = sNewPass; //修改密码

doc.Save( "c://InetPub//wwwroot//UserMan//userlist.xml" ); //存盘

return 0;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值