LINQ to XML Как поменять значения, не используя обход? - C#
Формулировка задачи:
Всем привет. Пишу небольшой классификатор спама. С помощью LINQ создаю файл с базой слов (см. скриншот).
Вопрос 1: как поменять значения XElement'ов Spam и NoSpam, не используя цикл? Хотелось бы искать нужный элемент по атрибуту, затем обновлять значения.
Вопрос 2: есть ли какой-нибудь метод, возвращающий булевое значение: есть или нет XElement в файле? Что-нибудь похожее на List.Contains().
Решение задачи: «LINQ to XML Как поменять значения, не используя обход?»
textual
Листинг программы
- using System.Xml.XPath;
- XElement x = XElement.Parse(@"<Dictionary>
- <Word value=""casino"">
- <Spam>1</Spam>
- <NoSpam>1</NoSpam>
- </Word>
- <Word value=""drug"">
- <Spam>1</Spam>
- <NoSpam>1</NoSpam>
- </Word>
- </Dictionary>");
- XElement xword = x.XPathSelectElement("./Word[@value='drug']");
- if (xword != null)
- {
- xword.Element("Spam").Value = "0";
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д