ホームページ  >  記事  >  バックエンド開発  >  C# は XML ファイルを操作するための XML 読み取りおよび書き込みクラスを作成します

C# は XML ファイルを操作するための XML 読み取りおよび書き込みクラスを作成します

黄舟
黄舟オリジナル
2017-02-27 11:38:033404ブラウズ

C# は XML ファイルを操作するための XML 読み取りおよび書き込みクラスを作成します


次の例では、C# を使用して asp.net に XML 操作を実装します。環境は vs2005 で、使用時にそれを呼び出します。

実装: データベースを使用せず、xml ファイルをローカルに保存するだけでログイン ユーザー情報を追加、変更、削除します。


以下は Web サイトとディレクトリに配置される User.xml ファイルの形式です。この例は XML を操作する機能を実装するだけなので、実際のアプリケーションではログイン パスワードは暗号化されません。この問題を検討してください。同時に、このファイルには書き込み権限を与える必要がありますが、これは見落とされやすくなります。

C# は 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

C# は XML ファイルを操作するための 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;
C# は XML ファイルを操作するための XML 読み取りおよび書き込みクラスを作成します XML ファイル レコードの追加、変更、削除を完了するための 3 つのメソッド、つまり UserCode、UserName、NamePwd の操作です。コードは次のとおりです:

C# は XML ファイルを操作するための XML 読み取りおよび書き込みクラスを作成します

/**//// <summary>
/// Xml文件的读写类
/// </summary>
/// 
public class XmlRW
...{
    public XmlRW()
    ...{
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }
/**/////  大家注意 我们下面的内容在这里写
}



OK!このようにして、XML クラスの操作はほぼ完了しました。最初に作成したページに戻り、ログインしているユーザーの操作を非常に簡単にするために、3 つのボタンに対応するコードを追加します。ほお~C# は XML ファイルを操作するための XML 読み取りおよび書き込みクラスを作成します

C# は XML ファイルを操作するための 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;
/**//// <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);
    }
}




テストを実行し、テキストボックス1にユーザーコードを入力し、テキストボックス2にユーザー名を入力し、テキストボックス3にログインパスワードを入力し、ボタン1をクリックして追加を完了します。 XML は事前に作成しておく必要があります。その他はすべて同じです。C# は XML ファイルを操作するための XML 読み取りおよび書き込みクラスを作成します

C# は XML ファイルを操作するための XML 読み取りおよび書き込みクラスを作成します-->
上記は、XML ファイルを操作するために C# で XML の読み取りおよび書き込み操作を記述する内容です。さらに関連した内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。