次の例では、C# を使用して asp.net に XML 操作を実装します。環境は vs2005 で、使用時にそれを呼び出します。
実装: データベースを使用せず、xml ファイルをローカルに保存するだけでログイン ユーザー情報を追加、変更、削除します。
以下は Web サイトとディレクトリに配置される User.xml ファイルの形式です。この例は XML を操作する機能を実装するだけなので、実際のアプリケーションではログイン パスワードは暗号化されません。この問題を検討してください。同時に、このファイルには書き込み権限を与える必要がありますが、これは見落とされやすくなります。
<?xml version="1.0"?> <UserLogin> <User> <UserCode>001</UserCode> <UserName>操作员1</UserName> <UserPwd>111</UserPwd> </User> <User> <UserCode>002</UserCode> <UserName>操作员2</UserName> <UserPwd>222</UserPwd> </User> </UserLogin>
まず、vs2005 で asp.net Web サイトを作成し、C# 言語を選択します。
新しい Web フォームを作成し、3 つのテキストボックスと 3 つのボタンを配置します。名前を変更する必要はありません。当面は、皆さんの便宜を図るため (そして私は怠け者です)、この例ではコントロールの名前を変更しませんでした (赤面)。
次に、新しいプロジェクト (クラス) を作成し、XmlRW.cs という名前を付けて、app_Code フォルダーに保存します
using for xml を先頭に追加します: using System
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;XML ファイル レコードの追加、変更、削除を完了するための 3 つのメソッド、つまり UserCode、UserName、NamePwd の操作です。コードは次のとおりです:
/**//// <summary> /// Xml文件的读写类 /// </summary> /// public class XmlRW ...{ public XmlRW() ...{ // // TODO: 在此处添加构造函数逻辑 // } /**///// 大家注意 我们下面的内容在这里写 }
OK!このようにして、XML クラスの操作はほぼ完了しました。最初に作成したページに戻り、ログインしているユーザーの操作を非常に簡単にするために、3 つのボタンに対応するコードを追加します。ほお~
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 ファイルを操作するために C# で XML の読み取りおよび書き込み操作を記述する内容です。さらに関連した内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。