Пример #1
0
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";
}
Пример #2
0
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);
}