C#读取xml

1.

Asp.net使用login控件(系统提供的登录控件,而不是用户自己定义的控件)的时候为控件上的按钮添加事件是Login_Authenticate()。

2.

关于XML的读取和遍历

XmlDocument doc = new XmlDocument();//使用XmlDocument类操作XML文档。

            doc.Load("D:/login.xml");//加载文档

            XmlNode nodeRoot = doc.DocumentElement;//获取根节点

            Console.WriteLine(nodeRoot.Name);//输出节点名

Console.Write("Please Enter Your Name:");//以下是模拟用户登录,用XML内的数据进行比较

            string unameGet = Console.ReadLine();

            Console.Write("Please Enter Your Password:");

            string pwdGet = Console.ReadLine();

            XmlNode nodeUser = nodeRoot.FirstChild;//获取第一个子节点

            while (nodeUser != null)

            {

                string uname = nodeUser.SelectSingleNode("uname").InnerText;//注意:asp.net用InnerText表示节点的值,而不是用Value;

                string pwd = nodeUser.SelectSingleNode("pwd").InnerText;//SelectSingNode()方法获取当前节点的一个子节点。

                if (uname.Equals(unameGet) && pwd.Equals(pwdGet))

                {

                    Console.WriteLine(unameGet + ",You Have Logged In Successfully");

                    break;

                }

                else

                {

                    nodeUser = nodeUser.NextSibling;//获取下一个兄弟节点

                }

            } 

            if(nodeUser == null)

                Console.WriteLine(unameGet + ",You Failed to Log In ");

以下是login.xml:

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

<root>

    <user>

        <uid>1</uid>

        <uname>jack</uname>

        <pwd>jack</pwd>

    </user>

    <user>

        <uid>2</uid>

        <uname>peter</uname>

        <pwd>peter</pwd>

    </user>

    <user>

        <uid>3</uid>

        <uname>luke</uname>

        <pwd>luke</pwd>

    </user>

    <user>

        <uid>4</uid>

        <uname>ok</uname>

        <pwd>ok</pwd>

    </user>

    <user>

        <uid>5</uid>

        <uname>lame</uname>

        <pwd>lame</pwd>

    </user>

</root>

用Foreach语句实现上述功能的简便方法:

     foreach (XmlNode item in doc.GetElementsByTagName("uname"))//按标签名获取节点的集合

            {   XmlNode nodePwd=uname.NextSibling;

                if (item.InnerText == unameGet&&nodePwd.InnerText==pwdGet)

                {

                    Console.WriteLine(unameGet + ",You Have Logged In Successfully");

                    break;//跳出循环

                }

            }

以上代码同时证明,foreach除了可以遍历每一个元素,也可以使用break跳出循环。

原文地址:https://www.cnblogs.com/aaronhoo/p/2518073.html