我试图设置一个元素的值,当元素看起来像这样<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();
}
但这将在该元素中创建一个新元素,我不想这样做,
也许我的拳头方法甚至是错的? 你如何正确设置元素的值?
答案 0 :(得分:7)
似乎解决方案就是这样做:
nodechild = node.append_child(pugi::node_pcdata);
这将创建一个仅包含元素
中的纯文本的子项答案 1 :(得分:3)
在尝试设置值之前,应检查子元素是否等于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");
}