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