>  기사  >  백엔드 개발  >  C#은 XML 읽기 및 쓰기 클래스를 작성하여 xml 파일을 작동합니다.

C#은 XML 읽기 및 쓰기 클래스를 작성하여 xml 파일을 작동합니다.

黄舟
黄舟원래의
2017-02-27 11:38:033394검색

C#은 XML 읽기 및 쓰기 클래스를 작성하여 xml 파일을 작동합니다


다음 예는 C#을 사용하여 asp.net에서 xml 작업을 구현하는 것입니다. 환경은 vs2005입니다. 을 누른 다음 사용 중일 때 호출하세요.

구현: 데이터베이스를 사용하지 않고 로그인 사용자 정보를 추가, 수정, 삭제하고 XML 파일만 로컬에 저장합니다.


다음은 웹사이트와 디렉터리에 있는 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 웹사이트를 만들고, c# 언어를 선택하세요.

새 웹 양식을 만들고, 3개의 텍스트 상자와 3개의 버튼이 있습니다. 모든 사람의 편의를 위해(그리고 저의 게으름을 위해) 이 예제에서는 컨트롤의 이름을 변경하지 않았습니다.

그런 다음 새 프로젝트인 class를 만들고 이름을 XmlRW.cs로 지정한 후 app_Code 폴더에 저장합니다.

상단에 xml 사용 추가: 다음 코드와 같이 System.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;

C#은 XML 읽기 및 쓰기 클래스를 작성하여 xml 파일을 작동합니다.

C#은 XML 읽기 및 쓰기 클래스를 작성하여 xml 파일을 작동합니다.

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

그럼 3개 쓰기 시작합니다 xml 파일 레코드의 추가, 수정, 삭제, 즉 UserCode, UserName, NamePwd의 연산을 완료하는 방법이다. 코드는 다음과 같습니다.

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

C#은 XML 읽기 및 쓰기 클래스를 작성하여 xml 파일을 작동합니다.

좋습니다! 이런 식으로 기본적으로 xml 클래스의 작업을 마쳤습니다. 처음에 만든 페이지로 돌아가서 해당 코드를 세 개의 버튼에 추가하면 로그인한 사용자를 매우 쉽게 조작할 수 있습니다. 후~

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

C#은 XML 읽기 및 쓰기 클래스를 작성하여 xml 파일을 작동합니다.

테스트를 실행하고, 텍스트박스1에 사용자 코드를 입력하고, 텍스트박스2에 사용자 이름을 입력하고, 채우기 textbox3 비밀번호의 로그인에서 1번 버튼을 클릭하면 추가가 완료됩니다.... xml은 미리 생성해두어야 하며 나머지도 유사합니다.

위 내용은 C#에서 XML 읽기 및 쓰기 작업을 작성하는 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.