pugixml"extend"元素来增加价值

Tis*_*tos 3 c++ xml pugixml

我试图设置元素的值,当元素看起来像这样时<element></element>我会这样做:

pugi::xml_node node = xmlBase.child("element");
pugi::xml_node nodechild = node.first_child();
nodechild.set_value(this->elementValue);
Run Code Online (Sandbox Code Playgroud)

但是,当我有一个看起来像这样的元素:

<element />
Run Code Online (Sandbox Code Playgroud)

这不会工作..我尝试在"set_value"行之前使用它

if(nodechild == NULL)
{
    nodechild = node.append_child();
}
Run Code Online (Sandbox Code Playgroud)

但这会在该元素中创建一个新元素,我不想这样做,

也许我的拳头方法甚至是错的?你如何正确设置元素的值?

Tis*_*tos 7

似乎解决方案是这样做:

nodechild = node.append_child(pugi::node_pcdata);
Run Code Online (Sandbox Code Playgroud)

这将创建一个只包含元素中纯文本的子项

  • 那是对的; 根据http://pugixml.googlecode.com/svn/tags/latest/docs/manual/dom.html#node_pcdata元素内的文本有自己的节点; <element />没有子节点(<element> </ element>也没有; <element> x </ element>有一个PCDATA子节点),因此您需要显式地添加具有正确类型的节点. (2认同)