%'update_imadoc': update an xml file with geometric calibration parameters %-------------------------------------------------------------------------- % function update_imadoc(GeometryCalib,outputfile) % %INPUT: % GeometryCalib: structure containing the calibration parameters % outputfile: xml file to modify %------------------------------------------------------------- function update_imadoc(GeometryCalib,outputfile) testappend=0; if exist(outputfile,'file');%=1 if the output file already exists, 0 else t=xmltree(outputfile); %read the file backupfile=outputfile; testexist=2; while testexist==2 backupfile=[backupfile '~']; testexist=exist(backupfile,'file'); end [success,message]=copyfile(outputfile,backupfile);%make backup uid=find(t,'ImaDoc'); if ~isequal(uid,1) return end %if the xml file is ImaDoc uid_calib=find(t,'ImaDoc/GeometryCalib'); if isempty(uid_calib) %if GeometryCalib does not already exists, create it [t,uid_calib]=add(t,1,'element','GeometryCalib'); else %if GeometryCalib already exists, delete its content % backupfile=outputfile; % testexist=2; % while testexist==2 % backupfile=[backupfile '~']; % testexist=exist(backupfile,'file'); % end % [success,message]=copyfile(outputfile,backupfile);%make backup if isequal(success,1) delete(outputfile) else return end uid_child=children(t,uid_calib); t=delete(t,uid_child); testappend=1; end end if ~testappend t=xmltree; t=set(t,1,'name','ImaDoc'); [t,uid_calib]=add(t,1,'element','GeometryCalib'); % t=struct2xml(GeometryCalib,t,uid_calib); end t=struct2xml(GeometryCalib,t,uid_calib); save(t,outputfile);