我不允許創建新標籤'tinyxml2',這就是爲什麼我使用標籤'tinyxml',但是我使用'tinyxml2'!使用tinyxml2從文本插入子樹到現有的XML文件中
我想插入一個子樹元素到現有的XML文件。我的問題是,在運行程序並檢查XML文件後,子樹根本不存在於文檔中。在原始代碼中,我也在加載和保存文件時檢查錯誤,因此這些函數沒有問題,它們工作正常。我嘗試了幾種不同的方法,並使用UserList.NewElement(*name*)
-函數添加單個元素也能正常工作。 現在我要插入一個文本變量整個子樹...
我的最新的方法是這樣的(但不檢查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*);
順便說一句... 當我試圖通過使用tinyxml2::XMLDocument UserList
解析我的XMLText
保存的XML文件在運行程序後將爲空。這意味着在嘗試執行此操作時,原始XML文檔內容以及新分析的子樹都不會保存。這個事實使我使用第二個tinyxml2::XMLDocument TestParse
。現在XML文件被保存,包含它的原始內容,但解析後的子樹仍然缺失......非常感謝您提供任何解決方案/幫助/建議。
非常感謝你的回覆。但對於我的情況來說,有點太晚了,那時我自己找到了一個解決方法(不使用tinyxml)。這個解決方案雖然可以幫助別人 – Dino 2015-07-30 11:09:54