Classic ASP
Classic ASP
Extract XMP MetaData as XML
See more XMP Examples
Demonstrates how to open a JPG or TIF image file and extract the XMP metadata as XML.Chilkat Classic ASP Downloads
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
success = 0
' This requires the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.
set xmp = Server.CreateObject("Chilkat.Xmp")
' Load a JPG or TIF image file.
' Sample JPG's with XMP metadata may be found at:
' https://www.chilkatsoft.com/testData/xmp/sample1.jpg
' https://www.chilkatsoft.com/testData/xmp/sample2.jpg
' https://www.chilkatsoft.com/testData/xmp/sample3.jpg
success = xmp.LoadAppFile("qa_data/xmp/sample1.jpg")
If (success <> 1) Then
Response.Write "<pre>" & Server.HTMLEncode( xmp.LastErrorText) & "</pre>"
Response.End
End If
Response.Write "<pre>" & Server.HTMLEncode( "Num embedded XMP docs: " & xmp.NumEmbedded) & "</pre>"
' Assuming there is at least one, get the 1st.
' (There is typically never more than one, but theoretically it's possible.)
' xml is a Chilkat.Xml
Set xml = xmp.GetEmbedded(0)
If (xmp.LastMethodSuccess = 0) Then
Response.Write "<pre>" & Server.HTMLEncode( "No XMP metadata found.") & "</pre>"
Response.End
End If
Response.Write "<pre>" & Server.HTMLEncode( xml.GetXml()) & "</pre>"
' Sample output:
' <?xml version="1.0" encoding="utf-8"?>
' <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP toolkit 3.0-28, framework 1.6">
' <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:iX="http://ns.adobe.com/iX/1.0/">
' <rdf:Description rdf:about="uuid:0f410648-9396-11d9-bb8e-a67e6693b6e9" xmlns:xmpPLUS="XMP Photographic Licensing Universal System (xmpPLUS, http://ns.adobe.com/xap/1.0/PLUS/)">
' <xmpPLUS:CreditLineReq>False</xmpPLUS:CreditLineReq>
' <xmpPLUS:ReuseAllowed>False</xmpPLUS:ReuseAllowed>
' </rdf:Description>
' <rdf:Description rdf:about="uuid:0f410648-9396-11d9-bb8e-a67e6693b6e9" xmlns:Iptc4xmpCore="http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/">
' <Iptc4xmpCore:IntellectualGenre>Profile</Iptc4xmpCore:IntellectualGenre>
' <Iptc4xmpCore:Location>Lake Superior</Iptc4xmpCore:Location>
' <Iptc4xmpCore:CountryCode>US</Iptc4xmpCore:CountryCode>
' <Iptc4xmpCore:CreatorContactInfo rdf:parseType="Resource">
' <Iptc4xmpCore:CiAdrExtadr>John Doe Photography, 123 Maple Lane</Iptc4xmpCore:CiAdrExtadr>
' <Iptc4xmpCore:CiAdrCity>Champaign</Iptc4xmpCore:CiAdrCity>
' <Iptc4xmpCore:CiAdrRegion>Illinois</Iptc4xmpCore:CiAdrRegion>
' <Iptc4xmpCore:CiAdrPcode>61820</Iptc4xmpCore:CiAdrPcode>
' <Iptc4xmpCore:CiAdrCtry>USA</Iptc4xmpCore:CiAdrCtry>
' <Iptc4xmpCore:CiTelWork>+1 (217) 1234567</Iptc4xmpCore:CiTelWork>
' <Iptc4xmpCore:CiEmailWork>john@doe.com</Iptc4xmpCore:CiEmailWork>
' <Iptc4xmpCore:CiUrlWork>www.doe.com</Iptc4xmpCore:CiUrlWork>
' </Iptc4xmpCore:CreatorContactInfo>
' <Iptc4xmpCore:SubjectCode>
' <rdf:Bag>
' <rdf:li>14024001</rdf:li>
' </rdf:Bag>
' </Iptc4xmpCore:SubjectCode>
' <Iptc4xmpCore:Scene>
' <rdf:Bag>
' <rdf:li>012300</rdf:li>
' </rdf:Bag>
' </Iptc4xmpCore:Scene>
' </rdf:Description>
' <rdf:Description rdf:about="uuid:0f410648-9396-11d9-bb8e-a67e6693b6e9" xmlns:exif="http://ns.adobe.com/exif/1.0/">
' <exif:ColorSpace>1</exif:ColorSpace>
' <exif:PixelXDimension>288</exif:PixelXDimension>
' <exif:PixelYDimension>432</exif:PixelYDimension>
' </rdf:Description>
' <rdf:Description rdf:about="uuid:0f410648-9396-11d9-bb8e-a67e6693b6e9" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"/>
' <rdf:Description rdf:about="uuid:0f410648-9396-11d9-bb8e-a67e6693b6e9" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/">
' <photoshop:AuthorsPosition>Photographer</photoshop:AuthorsPosition>
' <photoshop:Headline>Young boy yelling</photoshop:Headline>
' <photoshop:CaptionWriter>John Doe</photoshop:CaptionWriter>
' <photoshop:DateCreated>2004-08-19</photoshop:DateCreated>
' <photoshop:City>Marquette</photoshop:City>
' <photoshop:State>Michigan</photoshop:State>
' <photoshop:Country>United States</photoshop:Country>
' <photoshop:TransmissionReference>PO 34567</photoshop:TransmissionReference>
' <photoshop:Instructions>Original RAW capture Nikon D2X, Adobe RGB 1998.</photoshop:Instructions>
' <photoshop:Credit>John Doe Photography</photoshop:Credit>
' <photoshop:Source>John Doe Photography</photoshop:Source>
' <photoshop:History/>
' </rdf:Description>
' <rdf:Description rdf:about="uuid:0f410648-9396-11d9-bb8e-a67e6693b6e9" xmlns:tiff="http://ns.adobe.com/tiff/1.0/">
' <tiff:XResolution>72/1</tiff:XResolution>
' <tiff:YResolution>72/1</tiff:YResolution>
' <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
' <tiff:Orientation>1</tiff:Orientation>
' </rdf:Description>
' <rdf:Description rdf:about="uuid:0f410648-9396-11d9-bb8e-a67e6693b6e9" xmlns:xap="http://ns.adobe.com/xap/1.0/">
' <xap:CreateDate>2005-03-13T02:02:29-06:00</xap:CreateDate>
' <xap:ModifyDate>2005-03-13T02:02:29-06:00</xap:ModifyDate>
' <xap:MetadataDate>2005-03-13T02:02:29-06:00</xap:MetadataDate>
' <xap:CreatorTool>Adobe Photoshop CS Windows</xap:CreatorTool>
' </rdf:Description>
' <rdf:Description rdf:about="uuid:0f410648-9396-11d9-bb8e-a67e6693b6e9" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xapMM="http://ns.adobe.com/xap/1.0/mm/">
' <xapMM:DerivedFrom rdf:parseType="Resource">
' <stRef:instanceID>uuid:f5b64171-9394-11d9-bb8e-a67e6693b6e9</stRef:instanceID>
' <stRef:documentID>adobe:docid:photoshop:e4d002a4-9392-11d9-bb8e-a67e6693b6e9</stRef:documentID>
' </xapMM:DerivedFrom>
' <xapMM:DocumentID>adobe:docid:photoshop:0f410647-9396-11d9-bb8e-a67e6693b6e9</xapMM:DocumentID>
' </rdf:Description>
' <rdf:Description rdf:about="uuid:0f410648-9396-11d9-bb8e-a67e6693b6e9" xmlns:xapRights="http://ns.adobe.com/xap/1.0/rights/">
' <xapRights:Marked>True</xapRights:Marked>
' <xapRights:WebStatement>http://www.doe.com</xapRights:WebStatement>
' <xapRights:RightsUsageTerms>
' <rdf:Alt>
' <rdf:li xml:lang="x-default">For consideration only, no reproduction without prior permission</rdf:li>
' </rdf:Alt>
' </xapRights:RightsUsageTerms>
' <xapRights:UsageTerms>
' <rdf:Alt>
' <rdf:li xml:lang="x-default">For consideration only, no reproduction without prior permission</rdf:li>
' </rdf:Alt>
' </xapRights:UsageTerms>
' </rdf:Description>
' <rdf:Description rdf:about="uuid:0f410648-9396-11d9-bb8e-a67e6693b6e9" xmlns:dc="http://purl.org/dc/elements/1.1/">
' <dc:format>image/jpeg</dc:format>
' <dc:description>
' <rdf:Alt>
' <rdf:li xml:lang="x-default">Three year old African American boy yells with joy on beach during vacation.</rdf:li>
' </rdf:Alt>
' </dc:description>
' <dc:title>
' <rdf:Alt>
' <rdf:li xml:lang="x-default">20040819_pe_014578d.nef</rdf:li>
' </rdf:Alt>
' </dc:title>
' <dc:rights>
' <rdf:Alt>
' <rdf:li xml:lang="x-default">�2004 John Doe, all rights reserved</rdf:li>
' </rdf:Alt>
' </dc:rights>
' <dc:creator>
' <rdf:Seq>
' <rdf:li>John Doe</rdf:li>
' </rdf:Seq>
' </dc:creator>
' <dc:subject>
' <rdf:Bag>
' <rdf:li>boy</rdf:li>
' <rdf:li>gender</rdf:li>
' <rdf:li>human beings</rdf:li>
' <rdf:li>humans</rdf:li>
' <rdf:li>lad</rdf:li>
' <rdf:li>male</rdf:li>
' <rdf:li>people</rdf:li>
' <rdf:li>3-12 years old</rdf:li>
' <rdf:li>age</rdf:li>
' <rdf:li>child</rdf:li>
' <rdf:li>youth</rdf:li>
' <rdf:li>african american</rdf:li>
' <rdf:li>african-american</rdf:li>
' <rdf:li>black</rdf:li>
' <rdf:li>ethnic</rdf:li>
' <rdf:li>ethnicity</rdf:li>
' <rdf:li>people of color</rdf:li>
' <rdf:li>race</rdf:li>
' <rdf:li>beach</rdf:li>
' <rdf:li>nature</rdf:li>
' <rdf:li>scenery</rdf:li>
' <rdf:li>emotion</rdf:li>
' <rdf:li>emotional</rdf:li>
' <rdf:li>emotions</rdf:li>
' <rdf:li>happiness</rdf:li>
' <rdf:li>happy</rdf:li>
' <rdf:li>joy</rdf:li>
' <rdf:li>joyful</rdf:li>
' <rdf:li>joyous</rdf:li>
' </rdf:Bag>
' </dc:subject>
' </rdf:Description>
' </rdf:RDF>
' </x:xmpmeta>
' You can generate parsing code using Chilkat's online tool :
' Generate Parsing Code from XML
x_xmpmeta_xmlns_x = xml.GetAttrValue("xmlns:x")
x_xmpmeta_x_xmptk = xml.GetAttrValue("x:xmptk")
rdf_RDF_xmlns_rdf = xml.ChilkatPath("rdf:RDF|(xmlns:rdf)")
rdf_RDF_xmlns_iX = xml.ChilkatPath("rdf:RDF|(xmlns:iX)")
i = 0
count_i = xml.NumChildrenHavingTag("rdf:RDF|rdf:Description")
Do While i < count_i
xml.I = i
rdf_Description_rdf_about = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|(rdf:about)")
rdf_Description_xmlns_xmpPLUS = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|(xmlns:xmpPLUS)")
rdf_Description_xmlns_Iptc4xmpCore = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|(xmlns:Iptc4xmpCore)")
rdf_Description_xmlns_exif = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|(xmlns:exif)")
rdf_Description_xmlns_pdf = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|(xmlns:pdf)")
rdf_Description_xmlns_photoshop = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|(xmlns:photoshop)")
rdf_Description_xmlns_tiff = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|(xmlns:tiff)")
rdf_Description_xmlns_xap = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|(xmlns:xap)")
rdf_Description_xmlns_stRef = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|(xmlns:stRef)")
rdf_Description_xmlns_xapMM = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|(xmlns:xapMM)")
rdf_Description_xmlns_xapRights = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|(xmlns:xapRights)")
rdf_Description_xmlns_dc = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|(xmlns:dc)")
xmpPLUS_CreditLineReq = xml.GetChildContent("rdf:RDF|rdf:Description[i]|xmpPLUS:CreditLineReq")
xmpPLUS_ReuseAllowed = xml.GetChildContent("rdf:RDF|rdf:Description[i]|xmpPLUS:ReuseAllowed")
Iptc4xmpCore_IntellectualGenre = xml.GetChildContent("rdf:RDF|rdf:Description[i]|Iptc4xmpCore:IntellectualGenre")
Iptc4xmpCore_Location = xml.GetChildContent("rdf:RDF|rdf:Description[i]|Iptc4xmpCore:Location")
Iptc4xmpCore_CountryCode = xml.GetChildContent("rdf:RDF|rdf:Description[i]|Iptc4xmpCore:CountryCode")
Iptc4xmpCore_CreatorContactInfo_rdf_parseType = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|Iptc4xmpCore:CreatorContactInfo|(rdf:parseType)")
Iptc4xmpCore_CiAdrExtadr = xml.GetChildContent("rdf:RDF|rdf:Description[i]|Iptc4xmpCore:CreatorContactInfo|Iptc4xmpCore:CiAdrExtadr")
Iptc4xmpCore_CiAdrCity = xml.GetChildContent("rdf:RDF|rdf:Description[i]|Iptc4xmpCore:CreatorContactInfo|Iptc4xmpCore:CiAdrCity")
Iptc4xmpCore_CiAdrRegion = xml.GetChildContent("rdf:RDF|rdf:Description[i]|Iptc4xmpCore:CreatorContactInfo|Iptc4xmpCore:CiAdrRegion")
Iptc4xmpCore_CiAdrPcode = xml.GetChildIntValue("rdf:RDF|rdf:Description[i]|Iptc4xmpCore:CreatorContactInfo|Iptc4xmpCore:CiAdrPcode")
Iptc4xmpCore_CiAdrCtry = xml.GetChildContent("rdf:RDF|rdf:Description[i]|Iptc4xmpCore:CreatorContactInfo|Iptc4xmpCore:CiAdrCtry")
Iptc4xmpCore_CiTelWork = xml.GetChildContent("rdf:RDF|rdf:Description[i]|Iptc4xmpCore:CreatorContactInfo|Iptc4xmpCore:CiTelWork")
Iptc4xmpCore_CiEmailWork = xml.GetChildContent("rdf:RDF|rdf:Description[i]|Iptc4xmpCore:CreatorContactInfo|Iptc4xmpCore:CiEmailWork")
Iptc4xmpCore_CiUrlWork = xml.GetChildContent("rdf:RDF|rdf:Description[i]|Iptc4xmpCore:CreatorContactInfo|Iptc4xmpCore:CiUrlWork")
rdf_li = xml.GetChildIntValue("rdf:RDF|rdf:Description[i]|Iptc4xmpCore:SubjectCode|rdf:Bag|rdf:li")
rdf_li = xml.GetChildIntValue("rdf:RDF|rdf:Description[i]|Iptc4xmpCore:Scene|rdf:Bag|rdf:li")
exif_ColorSpace = xml.GetChildIntValue("rdf:RDF|rdf:Description[i]|exif:ColorSpace")
exif_PixelXDimension = xml.GetChildIntValue("rdf:RDF|rdf:Description[i]|exif:PixelXDimension")
exif_PixelYDimension = xml.GetChildIntValue("rdf:RDF|rdf:Description[i]|exif:PixelYDimension")
photoshop_AuthorsPosition = xml.GetChildContent("rdf:RDF|rdf:Description[i]|photoshop:AuthorsPosition")
photoshop_Headline = xml.GetChildContent("rdf:RDF|rdf:Description[i]|photoshop:Headline")
photoshop_CaptionWriter = xml.GetChildContent("rdf:RDF|rdf:Description[i]|photoshop:CaptionWriter")
photoshop_DateCreated = xml.GetChildContent("rdf:RDF|rdf:Description[i]|photoshop:DateCreated")
photoshop_City = xml.GetChildContent("rdf:RDF|rdf:Description[i]|photoshop:City")
photoshop_State = xml.GetChildContent("rdf:RDF|rdf:Description[i]|photoshop:State")
photoshop_Country = xml.GetChildContent("rdf:RDF|rdf:Description[i]|photoshop:Country")
photoshop_TransmissionReference = xml.GetChildContent("rdf:RDF|rdf:Description[i]|photoshop:TransmissionReference")
photoshop_Instructions = xml.GetChildContent("rdf:RDF|rdf:Description[i]|photoshop:Instructions")
photoshop_Credit = xml.GetChildContent("rdf:RDF|rdf:Description[i]|photoshop:Credit")
photoshop_Source = xml.GetChildContent("rdf:RDF|rdf:Description[i]|photoshop:Source")
tiff_XResolution = xml.GetChildContent("rdf:RDF|rdf:Description[i]|tiff:XResolution")
tiff_YResolution = xml.GetChildContent("rdf:RDF|rdf:Description[i]|tiff:YResolution")
tiff_ResolutionUnit = xml.GetChildIntValue("rdf:RDF|rdf:Description[i]|tiff:ResolutionUnit")
tiff_Orientation = xml.GetChildIntValue("rdf:RDF|rdf:Description[i]|tiff:Orientation")
xap_CreateDate = xml.GetChildContent("rdf:RDF|rdf:Description[i]|xap:CreateDate")
xap_ModifyDate = xml.GetChildContent("rdf:RDF|rdf:Description[i]|xap:ModifyDate")
xap_MetadataDate = xml.GetChildContent("rdf:RDF|rdf:Description[i]|xap:MetadataDate")
xap_CreatorTool = xml.GetChildContent("rdf:RDF|rdf:Description[i]|xap:CreatorTool")
xapMM_DerivedFrom_rdf_parseType = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|xapMM:DerivedFrom|(rdf:parseType)")
stRef_instanceID = xml.GetChildContent("rdf:RDF|rdf:Description[i]|xapMM:DerivedFrom|stRef:instanceID")
stRef_documentID = xml.GetChildContent("rdf:RDF|rdf:Description[i]|xapMM:DerivedFrom|stRef:documentID")
xapMM_DocumentID = xml.GetChildContent("rdf:RDF|rdf:Description[i]|xapMM:DocumentID")
xapRights_Marked = xml.GetChildContent("rdf:RDF|rdf:Description[i]|xapRights:Marked")
xapRights_WebStatement = xml.GetChildContent("rdf:RDF|rdf:Description[i]|xapRights:WebStatement")
rdf_li_xml_lang = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|xapRights:RightsUsageTerms|rdf:Alt|rdf:li|(xml:lang)")
strRdf_li = xml.GetChildContent("rdf:RDF|rdf:Description[i]|xapRights:RightsUsageTerms|rdf:Alt|rdf:li")
rdf_li_xml_lang = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|xapRights:UsageTerms|rdf:Alt|rdf:li|(xml:lang)")
strRdf_li = xml.GetChildContent("rdf:RDF|rdf:Description[i]|xapRights:UsageTerms|rdf:Alt|rdf:li")
dc_format = xml.GetChildContent("rdf:RDF|rdf:Description[i]|dc:format")
rdf_li_xml_lang = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|dc:description|rdf:Alt|rdf:li|(xml:lang)")
strRdf_li = xml.GetChildContent("rdf:RDF|rdf:Description[i]|dc:description|rdf:Alt|rdf:li")
rdf_li_xml_lang = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|dc:title|rdf:Alt|rdf:li|(xml:lang)")
strRdf_li = xml.GetChildContent("rdf:RDF|rdf:Description[i]|dc:title|rdf:Alt|rdf:li")
rdf_li_xml_lang = xml.ChilkatPath("rdf:RDF|rdf:Description[i]|dc:rights|rdf:Alt|rdf:li|(xml:lang)")
strRdf_li = xml.GetChildContent("rdf:RDF|rdf:Description[i]|dc:rights|rdf:Alt|rdf:li")
strRdf_li = xml.GetChildContent("rdf:RDF|rdf:Description[i]|dc:creator|rdf:Seq|rdf:li")
j = 0
count_j = xml.NumChildrenHavingTag("rdf:RDF|rdf:Description[i]|dc:subject|rdf:Bag|rdf:li")
Do While j < count_j
xml.J = j
strRdf_li = xml.GetChildContent("rdf:RDF|rdf:Description[i]|dc:subject|rdf:Bag|rdf:li[j]")
j = j + 1
Loop
i = i + 1
Loop
%>
</body>
</html>