Изменить данные XML файла

254
15 сентября 2018, 15:50

Нужно из xml файла получать данные, по нажатию кнопки менять значение на 2 (+2). А вот как изменять данные из файла найти не могу нормально. Если встречались - оставьте ссылку, буду благодарен!

<?xml version="1.0" encoding="utf-8" ?>
<plan>
  <day1>
    <pushUps>14</pushUps>
    <pullUps>7</pullUps>
    <pullUpsBar>3</pullUpsBar>
  </day1>
</plan>
Answer 1

Можно парсить xml и менять значения, подробнее в этом вопросе.

Если же необходимо работать с большим количеством данных, то можно использовать сериализацию. Для начала на сайте нужно получить версию ваших данных в виде программных сущностный языка C#. Для этого можно воспользоваться этим сайтом Xml2CSharp (или аналогом); классы можно описать и самому.

Получиться что-то на подобие такого:

[XmlRoot(ElementName="day1")]
public class Day1 {
    [XmlElement(ElementName="pushUps")]
    public string PushUps { get; set; }
    [XmlElement(ElementName="pullUps")]
    public string PullUps { get; set; }
    [XmlElement(ElementName="pullUpsBar")]
    public string PullUpsBar { get; set; }
}
[XmlRoot(ElementName="plan")]
public class Plan {
    [XmlElement(ElementName="day1")]
    public Day1 Day1 { get; set; }
}

Тип string можно поменять, например, на int.

Сериализация и десериализация:

Plan plan;
XmlSerializer formatter = new XmlSerializer(typeof(Plan));
using (FileStream fs = new FileStream("data.xml", FileMode.OpenOrCreate))
{
    plan = (Plan)formatter.Deserialize(fs);
}
plan.Day1.PullUps += 2;
plan.Day1.PullUpsBar += 2;
plan.Day1.PushUps += 2;
using (FileStream fs = new FileStream("data.xml", FileMode.OpenOrCreate))
{
    formatter.Serialize(fs, plan);
}
READ ALSO
PHP цикл выводит неправильную сумму

PHP цикл выводит неправильную сумму

Я создаю цикл от 0-100 и создаю определенные условияНапример, если число делится на 3 без остатка вывести строку, но у меня также есть условие,...

245
Telegram PHP получить ответ от бота

Telegram PHP получить ответ от бота

Подскажите, как мне лучше на php примерно будет реализовать задачуВ telegram есть бот (не мой), при написании ему сообщения он выдаёт ссылку

287
Не отображается карта яндекса

Не отображается карта яндекса

Хочу сделать карту яндекса на сайтеЗакидываю код в отдельный файл, все работает

229
Вылетает CodeIgniter

Вылетает CodeIgniter

Завершается работа на знаке ">" без разницы в каком месте, встречает этот знак и завершаетсяВозможно проблема в настройке php или самого codeigniter...

267