LINQ не дает добавить новый узел в xml файл - C#

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

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

Пытаюсь добавить узел между элементами xml, но что-то видно делаю не так. Пытаюсь найти нужный учел и в него добавить новый. Делаю следующим образом:
Листинг программы
  1. XElement doc = XElement.Parse(xmlPath);
  2. doc.Descendants("element")
  3. .First(e => e.Attribute("id").Value == ID)
  4. .Add(new XElement("localization", new XAttribute("lang", local),
  5. new XAttribute("tooltip", toolTipText),
  6. new XAttribute("text", " ")));
xmlPath - путь к файлу. Программа ругается на параметр "First", пытался заменить на "Where", но та же песня. Лог выдаёт следующее:
Листинг программы
  1. Assets/Scripts/TooltipXml.cs(142,42): error CS1061: Type `System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement>' does not contain a definition for `First' and no extension method `First' of type `System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement>' could be found (are you missing a using directive or an assembly reference?)
Что не так? Заранее спасибо.
Я попробовал сделать так:
Листинг программы
  1. XElement doc = XElement.Parse(@"<?xml version='1.0' encoding='utf - 8'?>
  2. <root>
  3. <element id = '2'>
  4. <localization lang = 'en' tooltip = 'Cube in cube №2' text = '' />
  5. </element>
  6. </root> ");
  7. doc.Descendants("element")
  8. .First(e => e.Attribute("id").Value == ID)
  9. .Add(new XElement("localization", new XAttribute("lang", local),
  10. new XAttribute("tooltip", toolTipText),
  11. new XAttribute("text", " ")));
Так как понял, что XElement.Parse ест xml строку, но проблема та же. Так же вопрос, как тогда передать в XElement.Parse весь файл xml?

Решение задачи: «LINQ не дает добавить новый узел в xml файл»

textual
Листинг программы
  1. XDocument x = XDocument.Load(xmlPath);
  2.  
  3. x.Descendants("element")
  4.     .First(e => e.Attribute("id").Value == ID)
  5.     .Add(
  6.         new XElement("localization",
  7.             new XAttribute("lang", local),
  8.             new XAttribute("tooltip", toolTipText),
  9.             new XAttribute("text", "  ")
  10.     ));

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


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

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

7   голосов , оценка 4.429 из 5

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

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

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