2012-05-06 7 views
1

に要素を追加しようとしたとき、私はそうのような既存のノード/親に要素を追加しようとしています:プログラムがクラッシュした既存のノード

<?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); 

私は何が起こっているのかはわかりませんが、コードのその部分を実行するとクラッシュします。

答えて

1

私は<MyShares>タグにアクセスするにはあなたの呼び出しはまた

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

であるべきだと思う、唯一LinkEndChildは、あなたがしたい呼び出し、次のとおりです。

parent->LinkEndChild(elem); 
+0

ああ、それは今働いています。私は誤って の親 - > LinkEndChild(elem)に変更するのを忘れてしまった。 –

関連する問題