Sample code for 30+ languages & platforms
Java

XMP Array Property - Bag, Seq, or Alt

See more XMP Examples

How to insert or update an XMP array property (bag, seq, or alt).

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.StringArray;
import com.chilkatsoft.chilkat2.Xml;
import com.chilkatsoft.chilkat2.Xmp;

public class ChilkatExample {

    public static void main(String[] args) {
        boolean success = false;

        // This requires the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        Xmp xmp = new Xmp();

        // Load a JPG or TIF image file.
        // Sample JPG's with XMP metadata may be found at:
        // http://www.chilkatsoft.com/testData/xmp/sample1.jpg
        // http://www.chilkatsoft.com/testData/xmp/sample2.jpg
        // http://www.chilkatsoft.com/testData/xmp/sample3.jpg
        try {
            xmp.loadAppFile("sample1.jpg");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        System.out.println("Num embedded XMP docs: " + xmp.getNumEmbedded());

        // Assuming there is at least one, get the 1st.
        // (There is typically never more than one, but theoretically it's possible.)
        Xml xml = null;
        try {
            xml = xmp.getEmbedded(0);
        } catch (ChilkatException e) {
            xml = null;
        }
        if (xml != null) {
            // Create an object to hold one or more string values.
            StringArray sa = new StringArray();
            sa.append("value_1");
            sa.append("value_2");
            // ...

            try {
                xmp.addArray(xml, "bag", "Iptc4xmpCore:Chilkat", sa);
                success = true;
            } catch (ChilkatException e) {
                success = false;
            }
            if (!success) {
                System.out.println(xmp.getLastErrorText());
            } else {
                // Save the JPG.
                try {
                    xmp.saveAppFile("modified.jpg");
                } catch (ChilkatException e) {
                    System.out.println(e.getLastErrorText());
                }
            }

            xml.close();
        } else {
            System.out.println(xmp.getLastErrorText());
        }
    }
}