+ node=hnd.FirstChild("MessageList").FirstChild("ExternalMessage").ToNode();\r
+ while(node)\r
+ {\r
+ std::string type="";\r
+ std::string identity="";\r
+ date="";\r
+ index=-1;\r
+ boards.clear();\r
+\r
+ TiXmlHandle hnd2(node);\r
+ txt=hnd2.FirstChild("Type").FirstChild().ToText();\r
+ if(txt)\r
+ {\r
+ type=SanitizeSingleString(txt->ValueStr());\r
+ }\r
+\r
+ if(type=="Keyed")\r
+ {\r
+ txt=hnd2.FirstChild("Identity").FirstChild().ToText();\r
+ if(txt)\r
+ {\r
+ identity=SanitizeSingleString(txt->ValueStr());\r
+ }\r
+ txt=hnd2.FirstChild("Date").FirstChild().ToText();\r
+ if(txt)\r
+ {\r
+ date=SanitizeSingleString(txt->ValueStr());\r
+ }\r
+ txt=hnd2.FirstChild("Index").FirstChild().ToText();\r
+ if(txt)\r
+ {\r
+ tempstr=SanitizeSingleString(txt->ValueStr());\r
+ StringFunctions::Convert(tempstr,index);\r
+ }\r
+ node2=hnd2.FirstChild("Boards").FirstChild("Board").ToNode();\r
+ while(node2)\r
+ {\r
+ if(node2->FirstChild())\r
+ {\r
+ std::string boardname=SanitizeSingleString(node2->FirstChild()->ValueStr());\r
+ StringFunctions::LowerCase(boardname,boardname);\r
+ boards.push_back(boardname);\r
+ }\r
+ node2=node2->NextSibling("Board");\r
+ }\r
+ m_externalmessages.push_back(externalmessage("Keyed",identity,date,index,boards));\r
+ }\r
+\r
+ node=node->NextSibling("ExternalMessage");\r
+ }\r
+\r