-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 に答える