Я искал способ добавить свой XML-файл с помощью tinyxml2, но не смог ничего найти. Буду признателен за любую помощь.
Вот мой код:
function savedata() {
XMLNode * pRoot = xmlDoc.NewElement("Cars");
xmlDoc.InsertFirstChild(pRoot);
XMLElement * pElement = xmlDoc.NewElement("Brand");
pElement->SetText("Audi");
pRoot->InsertEndChild(pElement);
pElement = xmlDoc.NewElement("type");
pElement->SetText("4x4");
pRoot->InsertEndChild(pElement);
pElement = xmlDoc.NewElement("Date");
pElement->SetAttribute("day", 26);
pElement->SetAttribute("month", "April");
pElement->SetAttribute("Year", 2015);
pElement->SetAttribute("dateFormat", "26/04/2015");
pRoot->InsertEndChild(pElement);XMLError eResult = xmlDoc.SaveFile("SavedData1.xml");
XMLCheckResult(eResult);
}
Каждый раз, когда я запускаю функцию, XML перезаписывается, и я хочу добавить к существующему файлу.
Мой XML-файл:
<Cars>
<Brand>Audi</Brand>
<Whatever>anothercrap</Whatever>
<Date day="26" month="April" Year="2015" dateFormat="26/04/2015"/>
</Cars>
Мой корень есть и я хочу добавить к существующему файлу. Например,
<Cars>
<Brand>Audi</Brand>
<type>4x4</type>
<Date day="26" month="April" Year="2015" dateFormat="26/04/2015"/>
<Brand>BMWM</Brand>
<type>truck</type>
<Date day="26" month="April" Year="2015" dateFormat="26/04/2015"/>
</Cars>
XML — это структурированные данные, поэтому текстовое добавление будет сложным и, возможно, подверженным ошибкам, поскольку вам нужно будет убедиться, что вы не добавляете корневой узел дважды, а также поддерживает отступы и т. Д.
Что может быть проще — это загрузить XML, проанализировать его с помощью TinyXML и записать обратно.