\r
std::string IdentityIntroductionXML::GetXML()\r
{\r
- TiXmlDocument td;\r
- TiXmlDeclaration *tdec=new TiXmlDeclaration("1.0","UTF-8","");\r
- TiXmlElement *tid;\r
- TiXmlPrinter tp;\r
+ Poco::AutoPtr<Poco::XML::Document> doc=new Poco::XML::Document;\r
+ //TiXmlDocument td;\r
+ //TiXmlDeclaration *tdec=new TiXmlDeclaration("1.0","UTF-8","");\r
+ Poco::XML::Element *root=doc->createElement("IdentityIntroduction");\r
+ //TiXmlElement *tid;\r
+ //TiXmlPrinter tp;\r
\r
- td.LinkEndChild(tdec);\r
- tid=new TiXmlElement("IdentityIntroduction");\r
- td.LinkEndChild(tid);\r
+ doc->appendChild(root);\r
+ //td.LinkEndChild(tdec);\r
+ //tid=new TiXmlElement("IdentityIntroduction");\r
+ //td.LinkEndChild(tid);\r
\r
- tid->LinkEndChild(XMLCreateCDATAElement("Identity",m_identity));\r
+ root->appendChild(XMLCreateCDATAElement(doc,"Identity",m_identity));\r
+ //tid->LinkEndChild(XMLCreateCDATAElement("Identity",m_identity));\r
\r
- td.Accept(&tp);\r
- return std::string(tp.CStr());\r
+ //td.Accept(&tp);\r
+ //return std::string(tp.CStr());\r
+ return GenerateXML(doc);\r
}\r
\r
void IdentityIntroductionXML::Initialize()\r
const bool IdentityIntroductionXML::ParseXML(const std::string &xml)\r
{\r
FreenetSSK ssk;\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,"IdentityIntroduction");\r
+ Poco::XML::Element *txt=NULL;\r
+\r
+ txt=XMLGetFirstChild(root,"Identity");\r
+ if(txt)\r
+ {\r
+ if(txt->firstChild())\r
+ {\r
+ m_identity=SanitizeSingleString(txt->firstChild()->getNodeValue());\r
+ }\r
+ }\r
+\r
+ ssk.SetPublicKey(m_identity);\r
+ if(ssk.ValidPublicKey()==false)\r
+ {\r
+ return false;\r
+ }\r
+\r
+ parsed=true;\r
+ }\r
+ catch(...)\r
+ {\r
+ }\r
+\r
+ return parsed;\r
+\r
+ /*\r
TiXmlDocument td;\r
td.Parse(xml.c_str());\r
\r
{\r
return false;\r
}\r
+ */\r
\r
}\r