Esempio n. 1
0
void XMLData::write(std::ofstream& out, int tabs = 0)
{
	if (value == "") {
		for (int i = 0; i < tabs; i++) {
			out << "\t";
		}

		out << "<" << name->c_str() << ">" << std::endl;

		std::list<XMLData*>::iterator it = nodes.begin();

		while (it != nodes.end()) {
			XMLData* node = dynamic_cast<XMLData*>(*it);
			node->write(out, tabs+1);
			it++;
		}

		for (int i = 0; i < tabs; i++) {
			out << "\t";
		}

		out << "</" << name->c_str() << ">" << std::endl;
	}
	else {
		for (int i = 0; i < tabs; i++) {
			out << "\t";
		}

		out << "<" << name->c_str() << ">";

		out << value;
		
		std::list<XMLData*>::iterator it = nodes.begin();

		while (it != nodes.end()) {
			XMLData* node = dynamic_cast<XMLData*>(*it);
			node->write(out, tabs+1);
			it++;
		}

		out << "</" << name->c_str() << ">" << std::endl;
	}
}