我想用XML来序列化对象,所以我得到了TinyXML。然而,我选择了较新的TinyXML2。问题是,我在任何地方都找不到教程,所以我只是阅读了文档。但是,我似乎很难在文档中添加元素。
有人能告诉我我的代码出了什么问题吗?
下面是我的demo.xml文件内容:
<?xml version="1.0" ?>
<Hello>World</Hello>下面是我的main()方法:
#include "tinyxml2/tinyxml2.h"
using namespace tinyxml2;
int main (int argc, char * const argv[])
{
XMLDocument doc;
if (doc.LoadFile("demo.xml") == XML_SUCCESS)
{
XMLNode *node = doc.NewElement("foo");
doc.InsertEndChild(node);
doc.SaveFile("demo2.xml");
}
}最后,这里是demo2.xml文件:
<?xml version="1.0" ?>
<Hello>World</Hello>
<foo/>Foo应该是这样的:<foo></foo>
但由于某种原因,它并不是这样。有谁能解释一下原因吗?
发布于 2012-03-23 23:05:07
事实上,它不应该看起来是这样的。您不需要将任何数据“放在”<foo>...</foo>标记之间。因此,<foo/> (注意斜杠)是您所拥有的内容的正确表示。
发布于 2013-06-19 09:39:22
在if之间,您可以修改代码,如下所示:
XMLElement *node = doc.NewElement("foo");
XMLText *text = doc.NewText("Another Hello!");
node->LinkEndChild(text);
doc.LinkEndChild(node);
doc.SaveFile("demo2.xml");发布于 2020-12-29 14:23:09
您可以使用SetText()函数添加空白内容,以达到所需的效果
XMLNode *node = doc.NewElement("foo");
node->SetText("");
doc.InsertEndChild(node);
doc.SaveFile("demo2.xml");https://stackoverflow.com/questions/9841300
复制相似问题