Перебор элементов xml через foreach - C#
Формулировка задачи:
Есть документ xml:
Метод, для авторизации, подобным образом ищет совпадения ID и Pass:
Листинг программы
- <?xml version="1.0" encoding="utf-8"?>
- <Users>
- <User ID="5047036703">
- <Pass>615668</Pass>
- </User>
- <User ID="6615722436">
- <Pass>333147</Pass>
- </User>
Листинг программы
- 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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д