I have many JPEG images which contain corrupted XMP XML blocks. I can easily fix these blocks but I\'m unsure how to write the \'fixed\' data back to the image files.
In JAVA you can use the Apache Sanselan library:
String newXmpXmlString = "<the><new/><xmp/><xml/></the>";
File file = new File('path/to/file');
new JpegXmpRewriter().updateXmpXml(new ByteSourceFile(file), new BufferedOutputStream(new FileOutputStream(file)), newXmpXmlString);
For a more detailed example of the solution outlined above there is an open source project on Google Code that houses a small jPeg XMP XML Trimmer.