В этом XML файле
<?xml version="1.0" encoding="utf-8" ?>
<user>
<score>5</score>
<login>admin</login>
</user>
Нужно прибавить к значению узла score (здесь 5) ещё некое значение (например 3) Пытался через foreach искать во всех узлах но начал теряться. Вот мой код C#
int gets;
InitializeComponent();
XmlDocument xml = new XmlDocument();
xml.Load("INFO1.xml");
XmlElement xroot = xml.DocumentElement;
foreach (XmlNode xnode in xroot)
{
foreach (XmlNode childnode in xnode.ChildNodes)
{
if (childnode.Name == "score")
{
gets = childnode.InnerText.ToInt();
gets += Form1.Score;
xnode.RemoveChild(childnode);
}
}
}
Удалить узел то я удалил, а создать с новым значением не смог. И важно сохранить значение, которое было до операции. Как можно изменить значение без удаления или что сделать для комфортной работы без критичных изменений? P.S Метод расширение ToInt конвертирует в int32.
Если игроков (пользователей) только 1 такой код вполне юзабилен.
XmlDocument xml = new XmlDocument();
xml.Load("INFO1.xml");
xml.DocumentElement.ChildNodes[0].ChildNodes[0].Atributes[0].Value = тут значение;
xml.Save("INFO1.xml");
Но тогда структуру файла нужно изменить на:
<?xml version="1.0" encoding="utf-8" ?>
<users>
<user id="0">
<score value="0"/>
</user>
</users>
Но если игроков больше чем 1 тогда такой код:
XmlDocument xml = new XmlDocument();
xml.Load("INFO1.xml");
foreach(var user in xml.DocumentElement.ChildNodes)
{
if (user.Atributes[0].Value == "0")
{
//Тут работаем с атрибутами и дочерними узлами
}
}
xml.Save("INFO1.xml");
Структура XML
<?xml version="1.0" encoding="utf-8" ?>
<users>
<user id="0">
<score value="0"/>
</user>
<user id="1">
<score value="228"/>
</user>
</users>
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть два изображения: shapkajpg и poster