我不允许创建新标签“tinyxml2”,这就是我使用标签“tinyxml”的原因,但我使用的是“tinyxml2”!
我正在尝试将子树元素插入现有的 XML 文件。我的问题是,在运行程序并检查 XML 文件后,文档中根本不存在子树。在原始代码中,我还在加载和保存文件时检查错误,因此这些功能没有问题,它们工作正常。UserList.NewElement(*name*)
我尝试了几种不同的方法,并且使用-function添加单个元素也可以正常工作。现在我想从一个文本变量中插入一个完整的子树......
我的最新方法如下所示(简化后不检查LoadFile
and SaveFile
):
tinyxml2::XMLDocument UserList;
UserList.LoadFile(*Path*);
const char* XMLText = "<user name=\"test-user\" gender=\"male\"><ability description=\"I_can_do_magic\" /></user>";
tinyxml2::XMLDocument TestParse;
TestParse.Parse(XMLText);
tinyxml2::XMLElement* myNewUser = TestParse.RootElement();
UserList.FirstChildElement( "magicians" )->InsertEndChild(myNewUser);
UserList.SaveFile(*Path*);
顺便说一句...当我尝试XMLText
使用tinyxml2::XMLDocument UserList
保存的 XML 文件来解析我的文件时,运行程序后将是空的。这意味着在尝试执行此操作时,既不会保存原始 XML 文档内容,也不会保存新解析的子树。这个事实使我使用了第二个tinyxml2::XMLDocument TestParse
。现在保存的 XML 文件包含它的原始内容,但是解析的子树仍然丢失......非常感谢您的任何解决方案/帮助/建议。