То, что у меня есть, может удалить все дочерние элементы фактического узла, который я хочу удалить, но не сам узел.
pugi::xml_document doc;
pugi::xml_parse_result result = doc.load_file("config/config.xml");
pugi::xpath_query query_network_last_run("//state[network/network_last_run='2']");
pugi::xpath_node_set network_last_run = query_network_last_run.evaluate_node_set(doc);
В приведенной ниже части удаляются определенные части, но я хочу удалить сеть основана на дочернем значении (network_last_run), а не на этом дочернем.
network_last_run[0].node().remove_child("network_gateway");
Структура файла XML
<root>
<state>
<network>
<network_last_run>2<network_last_run>
<network_gateway>192.168.3.1</network_gateway>
</network>
</state>
</root>
Я попытался сделать шаг назад, используя
network_last_run[0].node().parent().remove_child("network");
Но, похоже, изменяет только фактическую структуру, хранящуюся в памяти (удаляет первую), а не структуру, имеющуюся в запросе.
Возможно, я мог бы сделать это в цикле for и использовать условие if, чтобы проверить, соответствует ли значение дочернего узла, но я хотел бы сделать это с помощью запроса, если это возможно?