c++ - TinyXML2/C++ - 插入一个元素

标签 c++ xml tinyxml2

我想用 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>

但由于某些原因,它不是。谁能解释一下为什么?

最佳答案

事实上,它不应该是这样的。你不要在你的 <foo>...</foo> 之间放置任何数据标签。因此 <foo/> (注意斜线)是你所拥有的正确表示。

关于c++ - TinyXML2/C++ - 插入一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9841300/

相关文章:

c++ - 将格式化的 char 数组发送到 ostream 而无需额外的内存复制

c++ - 将 constexpr 数组扩展为一组非类型模板参数

javascript - Odoo:odoo TreeView 标题中的自定义按钮不会触发 python 函数

c++ - TinyXML-2 中 `TiXmlNode::FirstChild(const char *)` 的替代项是什么?

c++ - 使用TinyXML2在C++中读取XML文件

c++ - 为什么析构函数被调用了三次?

c++ - 让 foo(derived_object) 调用 foo(Base const&) 而不是模板函数?

c# - 在 WPF 窗口加载时加载 XML 文件

java - XML 编写器 Java

c++ - 为什么 tinyxml2 无法解析 Traffic Server xml 文件?