Heim >Backend-Entwicklung >C#.Net-Tutorial >C# schreibt XML-Lese- und Schreibklassen, um XML-Dateien zu bedienen

C# schreibt XML-Lese- und Schreibklassen, um XML-Dateien zu bedienen

黄舟
黄舟Original
2017-02-27 11:38:033410Durchsuche

C# schreibt XML-Lese- und Schreibklassen zum Betreiben von XML-Dateien


Das folgende Beispiel ist die Verwendung von C# zum Implementieren von XML-Operationen in asp.net. Die Umgebung ist vs2005. Ich habe selbst eine Operationsklasse geschrieben , und rufen Sie es dann auf, wenn es verwendet wird.

Implementierung: Anmeldeinformationen hinzufügen, ändern und löschen, ohne eine Datenbank zu verwenden und nur eine XML-Datei lokal zu speichern.


Das Folgende ist das Format der User.xml-Datei, die auf der Website und im Verzeichnis abgelegt wird. Dieses Beispiel dient nur der Implementierung der Funktion des XML-Betriebs, sodass das Anmeldekennwort praktisch nicht verschlüsselt wird Anwendungen sollten Sie diese Frage berücksichtigen. Gleichzeitig sollte dieser Datei eine Schreibberechtigung erteilt werden, was leichter zu übersehen ist.

C# schreibt XML-Lese- und Schreibklassen, um XML-Dateien zu bedienen

<?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>

Beginnen wir mit dem Codieren. Erstellen Sie zunächst eine asp.net-Website in vs2005, wählen Sie die C#-Sprache aus

und erstellen Sie eine neue Webformular. Es besteht vorerst keine Notwendigkeit, die Namen der Steuerelemente zu ändern. Der Einfachheit halber werden die Namen der Steuerelemente in diesem Beispiel nicht geändert.

Erstellen Sie dann eine neue Projektklasse, nennen Sie sie XmlRW.cs und speichern Sie sie im Ordner app_Code.

Fügen Sie oben die Verwendung von XML hinzu: Verwenden Sie System.Xml wie im folgenden Code

C# schreibt XML-Lese- und Schreibklassen, um XML-Dateien zu bedienen

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# schreibt XML-Lese- und Schreibklassen, um XML-Dateien zu bedienen

C# schreibt XML-Lese- und Schreibklassen, um XML-Dateien zu bedienen

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

Dann, Wir haben begonnen, drei Methoden zu schreiben, um das Hinzufügen, Ändern und Löschen von XML-Dateidatensätzen abzuschließen, nämlich die Vorgänge von UserCode, UserName und NamePwd. Der Code lautet wie folgt:

C# schreibt XML-Lese- und Schreibklassen, um XML-Dateien zu bedienen

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);
    }
}

C# schreibt XML-Lese- und Schreibklassen, um XML-Dateien zu bedienen

Ok! Auf diese Weise haben wir die Bedienung der XML-Klasse im Grunde abgeschlossen. Gehen wir zurück zu der Seite, die wir zu Beginn erstellt haben, und fügen wir den entsprechenden Code zu den drei Schaltflächen hinzu, sodass die Bedienung für den angemeldeten Benutzer sehr einfach ist. hoo~

C# schreibt XML-Lese- und Schreibklassen, um XML-Dateien zu bedienen

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!");
    }
}

C# schreibt XML-Lese- und Schreibklassen, um XML-Dateien zu bedienen

Führen Sie den Test aus, geben Sie den Benutzercode in Textfeld1 ein, geben Sie den Benutzernamen in Textfeld2 ein , füllen Sie das Textfeld3 aus. Geben Sie das Anmeldekennwort ein und klicken Sie auf die Schaltfläche 1, um das Hinzufügen abzuschließen.... Beachten Sie, dass die XML-Datei im Voraus erstellt werden muss

Das Obige ist der Inhalt des Schreibens von XML-Lese- und Schreibvorgängen in C#. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn