Элемент pugixml "extended" для добавления значения
Я пытаюсь установить значение элемента, как правило, когда элемент выглядит следующим образом <element></element>
Я просто делаю это:
pugi::xml_node node = xmlBase.child("element");
pugi::xml_node nodechild = node.first_child();
nodechild.set_value(this->elementValue);
Но когда у меня есть элемент, похожий на этот:
<element />
это не будет работать.. я пытался использовать это перед строкой "set_value"
if(nodechild == NULL)
{
nodechild = node.append_child();
}
но это создаст новый элемент внутри этого элемента, и я не хочу этого делать,
Возможно, мой подход к кулакам даже ошибочен? как правильно установить значение элемента?
2 ответа
Решение
Похоже, решение состоит в том, чтобы сделать это:
nodechild = node.append_child(pugi::node_pcdata);
это создаст дочерний элемент, который будет содержать только текст в элементе
Вы должны проверить, равен ли дочерний элемент null_node, прежде чем пытаться установить значение. Если это null_node, вы должны вместо этого добавить append_child:
xml_node firstchild = node.first_child();
if( !firstchild )
{
firstchild.append_child(pugi::node_pcdata).set_value("foo");
}
else
{
firstchild.set_value("foo");
}