Я использую библиотеку PugiXml для операций, связанных с XML.
Мой XML-файл:
<CurrentStatus>
<Time Stamp= "12:30">
<price>100</price>
<amount>1</amount>
</Time>
<Time Stamp= "14:50">
<price>10</price>
<amount>5</amount>
</Time>
<Time Stamp= "16:30">
<price>10</price>
<amount>5</amount>
</Time>
</CurrentStatus>
Для целей тестирования ядавая жестко запрограммированное значение, которое я хочу удалить узел Time
с атрибутом Stamp = 14:50
.
Код удаления узла XML: Я использовал этот SO Вопрос в качестве ссылки для удаления узла (name = Time
и Attribute = 14:50
).
for (xml_node child = doc.child("CurrentStatus").first_child(); child; )
{
xml_node next = child.next_sibling();
string attributeValue = child.attribute("Stamp").as_string();
if (attributeValue == "14:50")
{
cout << "delete" << endl;
child.parent().remove_child(child);
}
child = next;
}
Вопрос: Приведенный выше код работает без каких-либо ошибок.Он даже входит в if-statement
, но , почему оригинальный XML-файл остается тем же после выполнения?
PS: Я уверен, чтоКорневой узел и документ XML в целом читаются правильно, так как я могу отобразить структуру XML на консоли.