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";
}

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


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

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

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