#!/usr/bin/perl sub xml($) { $buffer = $_[0]; $buffer =~ s/^File: (.*) \(row: (\d+)\) (.*)/\t\\n\t\t$3\n\t\<\/Message\>\n/; return $buffer; } open(FIN,"doxygen.log"); open(FOUT,">doxygen.log.xml"); print FOUT "\n"; $buffer = ""; while () { chop; $row = $_; $row =~ s/&/&#38;/g; $row =~ s//>/g; if ( $row =~ /^File: / ) { if (length($buffer)>0) { print FOUT xml($buffer); $buffer = ""; } $buffer .= $row; } else { $buffer .= $row; } } print FOUT "\n"; close(FIN); close(FOUT);