+ bool parsed=false;\r
+ Poco::XML::DOMParser dp;\r
+\r
+ Initialize();\r
+\r
+ try\r
+ {\r
+ Poco::AutoPtr<Poco::XML::Document> doc=dp.parseString(FixCDATA(xml));\r
+ Poco::XML::Element *root=XMLGetFirstChild(doc,"BoardList");\r
+ Poco::XML::Element *boardel=NULL;\r
+\r
+ boardel=XMLGetFirstChild(root,"Board");\r
+ while(boardel)\r
+ {\r
+ std::string name="";\r
+ std::string description="";\r
+\r
+ Poco::XML::Element *txt=XMLGetFirstChild(boardel,"Name");\r
+ if(txt && txt->firstChild())\r
+ {\r
+ name=SanitizeSingleString(txt->firstChild()->getNodeValue());\r
+ StringFunctions::LowerCase(name,name);\r
+ if(name.size()>40)\r
+ {\r
+ name.erase(40);\r
+ }\r
+ }\r
+ txt=XMLGetFirstChild(boardel,"Description");\r
+ if(txt && txt->firstChild())\r
+ {\r
+ description=SanitizeSingleString(txt->firstChild()->getNodeValue());\r
+ }\r
+\r
+ if(name!="" && description!="")\r
+ {\r
+ m_boards.push_back(board(name,description));\r
+ }\r
+\r
+ boardel=XMLGetNextSibling(boardel,"Board");\r
+ }\r
+\r
+ parsed=true;\r
+\r
+ }\r
+ catch(...)\r
+ {\r
+ }\r
+\r
+ return parsed;\r
+\r
+ /*\r