fork download
  1. using System;
  2. using System.IO;
  3. using System.Linq;
  4. using System.Xml.Linq;
  5.  
  6. class Program
  7. {
  8. static void Main()
  9. {
  10. string inputXmlPath = "input.xml"; // Имя существующего XML-файла
  11. string outputXmlPath = "output.xml"; // Имя выходного XML-файла
  12.  
  13. if (!File.Exists(inputXmlPath))
  14. {
  15. Console.WriteLine("Файл не найден!");
  16. return;
  17. }
  18.  
  19. // Загружаем XML-документ
  20. XDocument xmlDoc = XDocument.Load(inputXmlPath);
  21.  
  22. // Обрабатываем элементы, содержащие дочерние элементы
  23. foreach (var element in xmlDoc.Descendants().Where(e => e.HasElements))
  24. {
  25. // Получаем сумму числовых значений из дочерних элементов
  26. double sum = element.Elements()
  27. .Select(e => double.TryParse(e.Value, out double num) ? num : 0)
  28. .Sum();
  29.  
  30. // Округляем сумму до двух знаков
  31. sum = Math.Round(sum, 2);
  32.  
  33. // Добавляем атрибут sum
  34. element.SetAttributeValue("sum", sum);
  35. }
  36.  
  37. // Сохраняем измененный XML в файл
  38. xmlDoc.Save(outputXmlPath);
  39.  
  40. Console.WriteLine($"Измененный XML-файл '{outputXmlPath}' успешно создан.");
  41. }
  42. }
Success #stdin #stdout 0.06s 31200KB
stdin
Standard input is empty
stdout
Файл не найден!