2012-03-23 25 views
3

オブジェクトをXMLでシリアル化したいので、TinyXMLを取得しました。しかし、私は新しいTinyXML2を使いました。問題は、私はどこでもチュートリアルを見つけることができないので、私はドキュメントを読んだだけです。しかし、私は文書に要素を追加することに固執しているようです。TinyXML2/C++ - 要素を挿入する

誰かが私のコードに間違っていると教えてもらえますか?

<?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ファイルがあります:

はここに私のdemo.xmlファイルの内容だ

<?xml version="1.0" ?> 
<Hello>World</Hello> 

<foo/> 

fooは次のようになります。 <foo></foo>

しかし、それは何らかの理由ではありません。なぜ誰かが説明できますか?

+0

を、あなたのxmlファイルが正常に終了書き込みに見えるように何をしたいですか? – user1055604

+0

@ user1055604 Qを編集しました。それを指摘してくれてありがとう! – rcplusplus

+3

」と「」は同等ですか?あなたのノードにテキストを追加するとすぐに、tinyxmlが後で変更されると思います。 – mkaes

答えて

4

実際、そのようには見えません。あなたはあなたの<foo>...</foo>タグの間にいかなるデータも入れません。そのように<foo/>(スラッシュに注意してください)はあなたが持っているものの正しい表現です。

4

かの間に、あなたは以下のようにコードを変更することがあります。

XMLElement *node = doc.NewElement("foo"); 
XMLText *text = doc.NewText("Another Hello!");  
node->LinkEndChild(text);  
doc.LinkEndChild(node); 

doc.SaveFile("demo2.xml"); 
関連する問題