c++ - 尝试将元素添加到现有节点时程序崩溃

标签 c++ element tinyxml

我正在尝试将一个元素添加到一个已经存在的节点/父节点中,如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="true"?>
   <BitComet Version="1.0">
      <MyShares>
         <bt title="Sound of Music" save_path="C:\Downloads|Sound of Music" task_finished="true" category="software" size="7126369" hash="31e0ded5b561ed698c151e72d5f20d9b75f03b12"/>
      </MyShares>
   </BitComet>

--

TiXmlDocument xml(pf);
if(!xml.LoadFile()) return;

TiXmlElement* root = xml.FirstChildElement("BitComet");

TiXmlElement* parent = xml.FirstChildElement("MyShares")

TiXmlElement* elem = new TiXmlElement( "bt" );
elem->SetAttribute("title", "TiTlE");
elem->SetAttribute("save_path", "C:\\Downloads|Test");
elem->SetAttribute("task_finished", "true");
elem->SetAttribute("category", "software");
elem->SetAttribute("size", 7126369);
elem->SetAttribute("hash", "hash_here");
xml.LinkEndChild( elem );

xml.LinkEndChild( parent );

xml.LinkEndChild( root );

xml.SaveFile(pf);

我不确定发生了什么,但它在执行该部分代码时崩溃了。

最佳答案

我认为您访问 <MyShares> 的电话标签应该是

TiXmlElement* parent = root -> FirstChildElement("MyShares");

此外,唯一的 LinkEndChild您想要的电话如下:

parent->LinkEndChild( elem );

关于c++ - 尝试将元素添加到现有节点时程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10473510/

相关文章:

c++ - 编写一个递归函数来乘以 2 个整数

python - 如何使用字典中的键查找值

java - 如何在 Java 中按元素大小对 ArrayList 进行排序?

c++ - TinyXml Unresolved external 问题

c++ - #include "opencv2/highgui/highgui.hpp"和 #include "opencv2/highgui.hpp"有什么区别

c++ - 在 SDL2 中创建 TextureManager 的最有效方式

javascript - 如何在 jQuery 中获取选定的选项元素属性?

c++ - 与 C++ 中带有引号的硬编码字符串进行比较

c++ - 使用 TinyXML(链接库?在 C++ 中)

c++ - 现在有了内联变量,extern const仍然有用吗?