1 #include "../../include/freenet/boardlistxml.h"
\r
7 BoardListXML::BoardListXML()
\r
12 void BoardListXML::AddBoard(const std::string &name, const std::string &description)
\r
14 if(name!="" && description!="")
\r
16 std::string lowername=name;
\r
17 StringFunctions::LowerCase(lowername,lowername);
\r
18 if(lowername.size()>40)
\r
20 lowername.erase(40);
\r
22 m_boards.push_back(board(lowername,description));
\r
26 const std::string BoardListXML::GetDescription(const long index)
\r
28 if(index>=0 && index<GetCount())
\r
30 return m_boards[index].m_description;
\r
38 const std::string BoardListXML::GetName(const long index)
\r
40 if(index>=0 && index<GetCount())
\r
42 return m_boards[index].m_name;
\r
50 std::string BoardListXML::GetXML()
\r
52 Poco::AutoPtr<Poco::XML::Document> doc=new Poco::XML::Document;
\r
53 Poco::AutoPtr<Poco::XML::Element> root=doc->createElement("BoardList");
\r
55 doc->appendChild(root);
\r
57 for(std::vector<board>::iterator i=m_boards.begin(); i!=m_boards.end(); i++)
\r
59 std::string boardname=(*i).m_name;
\r
60 StringFunctions::LowerCase(boardname,boardname);
\r
61 Poco::AutoPtr<Poco::XML::Element> tr=doc->createElement("Board");
\r
62 root->appendChild(tr);
\r
63 tr->appendChild(XMLCreateCDATAElement(doc,"Name",boardname));
\r
64 tr->appendChild(XMLCreateCDATAElement(doc,"Description",(*i).m_description));
\r
67 return GenerateXML(doc);
\r
70 void BoardListXML::Initialize()
\r
75 const bool BoardListXML::ParseXML(const std::string &xml)
\r
78 Poco::XML::DOMParser dp;
\r
84 Poco::AutoPtr<Poco::XML::Document> doc=dp.parseString(FixCDATA(xml));
\r
85 Poco::XML::Element *root=XMLGetFirstChild(doc,"BoardList");
\r
86 Poco::XML::Element *boardel=NULL;
\r
88 boardel=XMLGetFirstChild(root,"Board");
\r
91 std::string name="";
\r
92 std::string description="";
\r
94 Poco::XML::Element *txt=XMLGetFirstChild(boardel,"Name");
\r
95 if(txt && txt->firstChild())
\r
97 name=SanitizeSingleString(txt->firstChild()->getNodeValue());
\r
98 StringFunctions::LowerCase(name,name);
\r
104 txt=XMLGetFirstChild(boardel,"Description");
\r
105 if(txt && txt->firstChild())
\r
107 description=SanitizeSingleString(txt->firstChild()->getNodeValue());
\r
110 if(name!="" && description!="")
\r
112 m_boards.push_back(board(name,description));
\r
115 boardel=XMLGetNextSibling(boardel,"Board");
\r