void XmlWriter::Close() { while (!m_elements.empty()) WriteEndElement(); }
void mitk::ContourModelWriter::WriteEndElement( std::string &tag, std::ostream &file, const bool& indent ) { WriteEndElement( tag.c_str(), file, indent ); }
void XmlTextWriter::WriteElementString(RCString name, RCString value) { WriteStartElement(name); WriteString(value); WriteEndElement(); }
void mitk::ContourModelWriter::WriteXML( const mitk::ContourModel* contourModel, std::ostream& out ) { /*++++ <contourModel> ++++*/ WriteStartElement( XML_CONTOURMODEL, out ); /*++++ <head> ++++*/ WriteStartElement( XML_HEAD, out); /*++++ <geometryInfo> ++++*/ WriteStartElement( XML_GEOMETRY_INFO, out); WriteGeometryInformation( contourModel->GetTimeGeometry(), out); /*++++ </geometryInfo> ++++*/ WriteEndElement( XML_GEOMETRY_INFO, out); /*++++ </head> ++++*/ WriteEndElement( XML_HEAD, out); /*++++ <data> ++++*/ WriteStartElement( XML_DATA, out); unsigned int timecount = contourModel->GetTimeSteps(); for(unsigned int i=0; i< timecount; i++) { /*++++ <timestep> ++++*/ std::vector<std::string> at; at.push_back("n"); std::vector<std::string> val; val.push_back(ConvertToString(i)); at.push_back("isClosed"); val.push_back(ConvertToString(contourModel->IsClosed())); WriteStartElementWithAttribut( XML_TIME_STEP, at, val, out ); /*++++ <controlPoints> ++++*/ WriteStartElement(XML_CONTROL_POINTS, out); mitk::ContourModel::VertexIterator it = contourModel->IteratorBegin(); mitk::ContourModel::VertexIterator end = contourModel->IteratorEnd(); while(it != end) { mitk::ContourModel::VertexType* v = *it; /*++++ <point> ++++*/ std::vector<std::string> attr; attr.push_back("IsControlPoint"); std::vector<std::string> value; value.push_back(ConvertToString(v->IsControlPoint)); WriteStartElementWithAttribut( XML_POINT, attr, value, out ); /*++++ <x> ++++*/ WriteStartElement( XML_X, out ); WriteCharacterData( ConvertToString(v->Coordinates[0] ).c_str(), out ); /*++++ </x> ++++*/ WriteEndElement( XML_X, out, false ); /*++++ <y> ++++*/ WriteStartElement( XML_Y, out ); WriteCharacterData( ConvertToString( v->Coordinates[1] ).c_str(), out ); /*++++ </y> ++++*/ WriteEndElement( XML_Y, out, false ); /*++++ <z> ++++*/ WriteStartElement( XML_Z, out ); WriteCharacterData( ConvertToString( v->Coordinates[2] ).c_str(), out ); /*++++ </z> ++++*/ WriteEndElement( XML_Z, out, false ); /*++++ </point> ++++*/ WriteEndElement( XML_POINT, out ); it++; } /*++++ </controlPoints> ++++*/ WriteEndElement(XML_CONTROL_POINTS, out); /*++++ </timestep> ++++*/ WriteEndElement( XML_TIME_STEP, out ); } /*++++ </data> ++++*/ WriteEndElement( XML_DATA, out ); /*++++ </contourModel> ++++*/ WriteEndElement( XML_CONTOURMODEL, out ); }