int main() { Utils::Title("Testing XmlParser"); putline(); std::string src = "../XmlElementParts/LectureNote.xml"; XmlParser parser(src); parser.verbose(); Utils::title("Compressed form of formatted XML:"); std::cout << "\n" << src << "\n"; Utils::title("Parsing compressed XML:"); XmlDocument* pDoc = parser.buildDocument(); Utils::title("Resulting XML Parse Tree:"); std::cout << "\n" << pDoc->toString(); std::cout << "\n\n"; }
int main() { title("Testing XmlDocument class"); XmlDocument doc = buildDocument(); std::cout << doc.toString(); std::cout << "\n"; std::cout << "\n size of document = " << doc.size() << "\n"; title("Testing XmlDocument::DFS - looking for tags"); std::function<void(AbstractXmlElement&)> f; f = [](AbstractXmlElement& Elem) { if (Elem.tag().size() > 0) std::cout << "\n " << Elem.tag(); }; doc.DFS(doc.xmlRoot(), f); std::cout << "\n"; testDFS(doc); testElement(doc); testElements(doc); testDescendents(doc); testElementDescendents(doc); std::string path = "../XmlElementParts/LectureNote.xml"; title("Attempting to build document from fileSpec: " + path); try { XmlDocument doc2(path, XmlDocument::file); std::cout << doc2.toString(); } catch (std::exception& ex) { std::cout << "\n\n " << ex.what(); } std::cout << "\n\n"; }
// -----------< save a file to the server >--------------- void ClientHandler::saveFileServer(HttpMessage msg, Socket& socket) { FileSystem::Directory::create("../TestFileServer/"); std::string filename = msg.findValue("file") + ".ver1"; std::string packageName = msg.findValue("dir") + "." + getCurrentDate(); std::string path = "../TestFileServer/" + packageName + "/"; FileSystem::Directory::create(path); std::string dependencies = msg.findValue("deps"); std::vector<std::string> deps; if(dependencies != "") deps = findDeps(dependencies); std::vector<std::string> files; for (auto fileSpec : FileSystem::Directory::getFiles(path, msg.findValue("file") + ".ver*")) if (fileSpec.substr(fileSpec.find_last_of(".")) != ".xml") files.push_back(fileSpec); if (files.size() > 0) { std::string name = files[files.size() - 1]; int ver = std::stoi(name.substr(name.find_last_of(".") + 4)); filename = msg.findValue("file") + ".ver" + std::to_string(ver + 1); } std::string xmlpath = path + filename + ".xml"; XmlDocument doc = builDocument(filename, deps); FileSystem::File file(xmlpath); file.open(FileSystem::File::out, FileSystem::File::text); if (file.isGood()) file.putLine(doc.toString()); file.close(); size_t contentSize; std::string sizeString = msg.findValue("content-length"); if (sizeString != "") contentSize = Converter<size_t>::toValue(sizeString); else return; readFile(filename, contentSize, socket, path); updateXML(packageName, msg.findValue("file"), deps); }