--- /dev/null
+#include "../../include/freenet/fmsversionxml.h"\r
+\r
+FMSVersionXML::FMSVersionXML()\r
+{\r
+ Initialize();\r
+}\r
+\r
+std::string FMSVersionXML::GetXML()\r
+{\r
+ Poco::AutoPtr<Poco::XML::Document> doc=new Poco::XML::Document;\r
+ Poco::AutoPtr<Poco::XML::Element> root=doc->createElement("FMSVersion");\r
+\r
+ doc->appendChild(root);\r
+\r
+ root->appendChild(XMLCreateTextElement(doc,"Major",m_major));\r
+\r
+ root->appendChild(XMLCreateTextElement(doc,"Minor",m_minor));\r
+\r
+ root->appendChild(XMLCreateTextElement(doc,"Release",m_release));\r
+\r
+ root->appendChild(XMLCreateCDATAElement(doc,"Notes",m_notes));\r
+\r
+ root->appendChild(XMLCreateCDATAElement(doc,"Changes",m_changes));\r
+\r
+ root->appendChild(XMLCreateCDATAElement(doc,"PageKey",m_pagekey));\r
+\r
+ root->appendChild(XMLCreateCDATAElement(doc,"SourceKey",m_sourcekey));\r
+\r
+ return GenerateXML(doc);\r
+}\r
+\r
+void FMSVersionXML::Initialize()\r
+{\r
+ m_major=0;\r
+ m_minor=0;\r
+ m_release=0;\r
+ m_notes="";\r
+ m_changes="";\r
+ m_pagekey="";\r
+ m_sourcekey="";\r
+}\r
+\r
+const bool FMSVersionXML::ParseXML(const std::string &xml)\r
+{\r
+\r
+ 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,"FMSVersion");\r
+ Poco::XML::Element *txt=NULL;\r
+\r
+ txt=XMLGetFirstChild(root,"Major");\r
+ if(txt && txt->firstChild())\r
+ {\r
+ std::string tempstr=txt->firstChild()->getNodeValue();\r
+ StringFunctions::Convert(tempstr,m_major);\r
+ }\r
+ txt=XMLGetFirstChild(root,"Minor");\r
+ if(txt && txt->firstChild())\r
+ {\r
+ std::string tempstr=txt->firstChild()->getNodeValue();\r
+ StringFunctions::Convert(tempstr,m_minor);\r
+ }\r
+ txt=XMLGetFirstChild(root,"Release");\r
+ if(txt && txt->firstChild())\r
+ {\r
+ std::string tempstr=txt->firstChild()->getNodeValue();\r
+ StringFunctions::Convert(tempstr,m_release);\r
+ }\r
+ txt=XMLGetFirstChild(root,"Notes");\r
+ if(txt && txt->firstChild())\r
+ {\r
+ m_notes=txt->firstChild()->getNodeValue();\r
+ }\r
+ txt=XMLGetFirstChild(root,"Changes");\r
+ if(txt && txt->firstChild())\r
+ {\r
+ m_changes=txt->firstChild()->getNodeValue();\r
+ }\r
+ txt=XMLGetFirstChild(root,"PageKey");\r
+ if(txt && txt->firstChild())\r
+ {\r
+ m_pagekey=txt->firstChild()->getNodeValue();\r
+ }\r
+ txt=XMLGetFirstChild(root,"SourceKey");\r
+ if(txt && txt->firstChild())\r
+ {\r
+ m_sourcekey=txt->firstChild()->getNodeValue();\r
+ }\r
+\r
+ parsed=true;\r
+\r
+ }\r
+ catch(...)\r
+ {\r
+ }\r
+\r
+ return parsed;\r
+}\r