-3

我有以下 XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<Users>
<User>
  <Username> Admin </Username>
  <Password> 123 </Password>
<User>
</Users>

当我找到它时,我需要在用户名元素中查找一个变量,然后我必须将其密码与我在另一个变量中的密码进行比较,并检查它们是否匹配。

以下是什么好方法?如果您需要更改 XML 文件的格式,只要它包含用户名/密码就没有问题。

4

1 回答 1

3

您不应该将密码存储在纯 XML 中;但是,我认为这是您正在寻找的比较:

var userSought = "userA";
var passwordSought = "1234";

XDocument xml = new XDocument(
    new XDeclaration("1.0", "utf-8", "yes"),
    new XElement("Users",
        new XElement("User",
            new XElement("Username", "Admin"),
            new XElement("Password", "123")),
        new XElement("User",
            new XElement("Username", "userA"),
            new XElement("Password", "123"))
        ));

var userMatch = (from userElement in xml.Element("Users").Elements("User")
                  where userElement.Element("Username").Value == userSought
                  select new
                  {
                      Username = userElement.Element("Username").Value,
                      Password = userElement.Element("Password").Value
                  }).FirstOrDefault();

if(userMatch.Username == userSought && userMatch.Password == passwordSought)
    Console.WriteLine(userSought + " matches password " + passwordSought);
else
    Console.WriteLine(userSought + " has password " + userMatch.Password + " but is expected to be " + passwordSought);
于 2013-07-19T22:51:31.537 回答