新しいタグ「tinyxml2」を作成することは許可されていませんでした。そのため、タグ「tinyxml」を使用していますが、「tinyxml2」を使用しています!
サブツリー要素を既存の XML ファイルに挿入しようとしています。私の問題は、プログラムを実行してXMLファイルをチェックした後、サブツリーがドキュメント内に存在しないことです。元のコードでは、ファイルの読み込みと保存中にエラーをチェックしているので、これらの関数に問題はなく、正しく機能しています。UserList.NewElement(*name*)
私はいくつかの異なるアプローチを試しましたが、 -functionを使用して単一の要素を追加しても問題なく動作します。今、テキスト変数からサブツリー全体を挿入したい...
私の最新のアプローチは次のようになります(とをチェックせずに簡略化LoadFile
)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*);
ところで...保存したXMLファイルXMLText
を使用して解析しようとするtinyxml2::XMLDocument UserList
と、プログラムの実行後に空になります。これは、元の XML ドキュメントのコンテンツも、新しく解析されたサブツリーも保存されないことを意味します。この事実により、私は2番目を使用しましたtinyxml2::XMLDocument TestParse
。これで、元のコンテンツを含む XML ファイルが保存されましたが、解析されたサブツリーはまだ失われています...解決策/ヘルプ/アドバイスをありがとうございました。