0

この XML ファイルを生成すると、次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<Members xmlns="urn:lst-emp:emp">
  <Member xmlns="">
    <!--Info for Member TESTER-->
    <AccountName>Test Name</AccountName>
    <AccountNumber>Test Number</AccountNumber>
    <AccountBalance>Test Balance</AccountBalance>
  </Member>
  <Member xmlns="">
    <!--Info for Member Jeff Reed-->
    <AccountName>Jeff Reed</AccountName>
    <AccountNumber>5929</AccountNumber>
    <AccountBalance>9223.01</AccountBalance>
  </Member>
</Members>

以下の方法を使用して AccountName の XML 全体を検索できますが、それが一致した後、対応する xElements AccountNumber を取得して、その PIN (アカウント番号) がパスワード テキストボックス内のものと等しいことを検証する方法が必要です。 .

internal static bool userExists(String validationName)
    {
        bool foundUser = false;
        //check for a name
        XElement xelement = XElement.Load(Application.LocalUserAppDataPath + "\\members.xml");
        IEnumerable<XElement> members = xelement.Elements();
        foreach (var member in members)
        {
            if (member.Element("AccountName").Value == validationName)
            {
                //MessageBox.Show("It's a match.");
                foundUser = true;
                return foundUser;
            }
            else
            {
                //MessageBox.Show("No match found.");
            }
        }
        return foundUser;
    }

どうすればこれを行うことができますか?これを BankMember オブジェクトに戻すことを検討しましたが、最初に一致したユーザー名から情報を解析する方法が必要です。

        BankMember newMember = new BankMember(txtBxAccountName.Text.ToString(), int.Parse(txtBxAccountNumber.Text), float.Parse(txtBxStartingBalance.Text.TrimStart('$')));
4

2 に答える 2

0

次のコードは、一致する要素の口座番号を示します。

members.Where(x=> x.Element("AccountName").Value==validationName).Select(x=> x.Element("AccountNumber").Value).FirstOrDefault();
于 2013-06-11T19:22:08.317 に答える