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跳出循环。