Элемент 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");
}
Другие вопросы по тегам