static void ConvertSampleToXML(xmlpp::Element *sampleXML, Sample &sampleBAM) { std::vector<std::string> elements(sampleBAM.GetElements()); for (std::vector<std::string>::iterator it = elements.begin() ; it != elements.end() ; ++it) { SingleElement single_element = sampleBAM.GetSingleElement(*it); xmlpp::Element *element_rxi = sampleXML->add_child("element_rxi"); element_rxi->set_attribute("element", single_element.GetElement()); element_rxi->set_attribute("linetype", single_element.GetLineType()); element_rxi->set_attribute("datatype", single_element.GetDataType()); element_rxi->set_attribute("excitation_energy", single_element.GetExcitationEnergyString()); element_rxi->add_child_text(single_element.GetRXIString()); } std::map<std::string,double> asrfiles = sampleBAM.GetASRfiles(); for (std::map<std::string,double>::iterator iter = asrfiles.begin() ; iter != asrfiles.end() ; ++iter) { xmlpp::Element *new_asrfile = sampleXML->add_child("asrfile"); new_asrfile->add_child_text(iter->first); std::stringstream ss; ss << iter->second; new_asrfile->set_attribute("excitation_energy", ss.str()); } sampleXML->add_child("density")->add_child_text(sampleBAM.GetDensityString()); sampleXML->add_child("thickness")->add_child_text(sampleBAM.GetThicknessString()); sampleXML->set_attribute("density_thickness", sampleBAM.GetDensityThicknessFixedString()); sampleXML->set_attribute("matrix", sampleBAM.GetMatrixString()); return; }