Перебор элементов xml через foreach - C#

Узнай цену своей работы

Формулировка задачи:

Есть документ xml:
<?xml version="1.0" encoding="utf-8"?>
<Users>
  <User ID="5047036703">
    <Pass>615668</Pass>
  </User>
  <User ID="6615722436">
    <Pass>333147</Pass>
  </User>
Метод, для авторизации, подобным образом ищет совпадения ID и Pass:
XDocument UsersData = XDocument.Load("UsersData.xml");
XElement root = UsersData.Element("Users");
foreach(XElement xe in root.Elements("User").ToList())
{
    if((xe.Attribute("ID").Value == ID)&&(xe.Element("Pass").Value == Pass))
        canauth = true;
    else
        canauth = false;
}

Проблема:

Если такие ID и Pass есть в документе, и они находятся в первом элементе <User>, то совпадения не выявляются. Если они находятся во втором и более элементе <User>, всё работает.

Решение задачи: «Перебор элементов xml через foreach»

textual
Листинг программы
return UsersData.XPathSelectElements($"/Users/User[@ID='{ID}']/Pass[text()='{Pass}']").Any();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы