using System;
using System.IO;
using System.Linq;
using System.Xml.Linq;
class Program
{
static void Main()
{
string inputXmlPath = "input.xml"; // Имя существующего XML-файла
string outputXmlPath = "output.xml"; // Имя выходного XML-файла
if (!File.Exists(inputXmlPath))
{
Console.WriteLine("Файл не найден!");
return;
}
// Загружаем XML-документ
XDocument xmlDoc = XDocument.Load(inputXmlPath);
// Обрабатываем элементы, содержащие дочерние элементы
foreach (var element in xmlDoc.Descendants().Where(e => e.HasElements))
{
// Получаем сумму числовых значений из дочерних элементов
double sum = element.Elements()
.Select(e => double.TryParse(e.Value, out double num) ? num : 0)
.Sum();
// Округляем сумму до двух знаков
sum = Math.Round(sum, 2);
// Добавляем атрибут sum
element.SetAttributeValue("sum", sum);
}
// Сохраняем измененный XML в файл
xmlDoc.Save(outputXmlPath);
Console.WriteLine($"Измененный XML-файл '{outputXmlPath}' успешно создан.");
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uSU87CnVzaW5nIFN5c3RlbS5MaW5xOwp1c2luZyBTeXN0ZW0uWG1sLkxpbnE7CgpjbGFzcyBQcm9ncmFtCnsKICAgIHN0YXRpYyB2b2lkIE1haW4oKQogICAgewogICAgICAgIHN0cmluZyBpbnB1dFhtbFBhdGggPSAiaW5wdXQueG1sIjsgLy8g0JjQvNGPINGB0YPRidC10YHRgtCy0YPRjtGJ0LXQs9C+IFhNTC3RhNCw0LnQu9CwCiAgICAgICAgc3RyaW5nIG91dHB1dFhtbFBhdGggPSAib3V0cHV0LnhtbCI7IC8vINCY0LzRjyDQstGL0YXQvtC00L3QvtCz0L4gWE1MLdGE0LDQudC70LAKCiAgICAgICAgaWYgKCFGaWxlLkV4aXN0cyhpbnB1dFhtbFBhdGgpKQogICAgICAgIHsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoItCk0LDQudC7INC90LUg0L3QsNC50LTQtdC9ISIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAvLyDQl9Cw0LPRgNGD0LbQsNC10LwgWE1MLdC00L7QutGD0LzQtdC90YIKICAgICAgICBYRG9jdW1lbnQgeG1sRG9jID0gWERvY3VtZW50LkxvYWQoaW5wdXRYbWxQYXRoKTsKCiAgICAgICAgLy8g0J7QsdGA0LDQsdCw0YLRi9Cy0LDQtdC8INGN0LvQtdC80LXQvdGC0YssINGB0L7QtNC10YDQttCw0YnQuNC1INC00L7Rh9C10YDQvdC40LUg0Y3Qu9C10LzQtdC90YLRiwogICAgICAgIGZvcmVhY2ggKHZhciBlbGVtZW50IGluIHhtbERvYy5EZXNjZW5kYW50cygpLldoZXJlKGUgPT4gZS5IYXNFbGVtZW50cykpCiAgICAgICAgewogICAgICAgICAgICAvLyDQn9C+0LvRg9GH0LDQtdC8INGB0YPQvNC80YMg0YfQuNGB0LvQvtCy0YvRhSDQt9C90LDRh9C10L3QuNC5INC40Lcg0LTQvtGH0LXRgNC90LjRhSDRjdC70LXQvNC10L3RgtC+0LIKICAgICAgICAgICAgZG91YmxlIHN1bSA9IGVsZW1lbnQuRWxlbWVudHMoKQogICAgICAgICAgICAgICAgLlNlbGVjdChlID0+IGRvdWJsZS5UcnlQYXJzZShlLlZhbHVlLCBvdXQgZG91YmxlIG51bSkgPyBudW0gOiAwKQogICAgICAgICAgICAgICAgLlN1bSgpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8g0J7QutGA0YPQs9C70Y/QtdC8INGB0YPQvNC80YMg0LTQviDQtNCy0YPRhSDQt9C90LDQutC+0LIKICAgICAgICAgICAgc3VtID0gTWF0aC5Sb3VuZChzdW0sIDIpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8g0JTQvtCx0LDQstC70Y/QtdC8INCw0YLRgNC40LHRg9GCIHN1bQogICAgICAgICAgICBlbGVtZW50LlNldEF0dHJpYnV0ZVZhbHVlKCJzdW0iLCBzdW0pOwogICAgICAgIH0KCiAgICAgICAgLy8g0KHQvtGF0YDQsNC90Y/QtdC8INC40LfQvNC10L3QtdC90L3Ri9C5IFhNTCDQsiDRhNCw0LnQuwogICAgICAgIHhtbERvYy5TYXZlKG91dHB1dFhtbFBhdGgpOwoKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgkItCY0LfQvNC10L3QtdC90L3Ri9C5IFhNTC3RhNCw0LnQuyAne291dHB1dFhtbFBhdGh9JyDRg9GB0L/QtdGI0L3QviDRgdC+0LfQtNCw0L0uIik7CiAgICB9Cn0=