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; } }