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

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

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

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

Проблема:

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

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

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

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


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

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

12   голосов , оценка 3.917 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы