簡體   English   中英

如何獲取值自定義元數據屬性

[英]How to get values custom metadata properties

我正在嘗試獲取DAM中資產的元數據。 但是,對於前面沒有“ dc:”的屬性,元數據似乎返回為空。

Resource rs = getResourceResolver().getResource(fileReference);
Asset asset = rs.adaptTo(Asset.class);
//this works
title = asset.getMetadataValue("dc:title").toString(); 
//this does not work. 
//I have ensured that "mine.title" is a property and has string value assigned to it. 
customTitle = asset.getMetadataValue("mine.title").toString(): 
//this does not work either
customTitle = asset.getMetadata("mine.title").toString(): 

有沒有辦法從自定義元數據屬性獲取值?

最后的資產是簡單的節點,因此要獲得某些屬性,您可以執行以下操作(取決於變量fileReference實際路徑):

Resource metadataResource = rs.getChild("jcr:content/metadata");
ValueMap properties = ResourceUtil.getValueMap(metadataResource);
customTitle = properties.get("mine.title", "defaultValue")

“ dc:title”帶有注冊的名稱空間“ dc”(Dublin Core),而“ mine.title”則沒有。

這就是title = asset.getMetadataValue("dc:title").toString(); 給您比customTitle = asset.getMetadataValue("mine.title").toString()合適的值

您可以通過多種方式解決此問題。

  • 將屬性名稱更改為“ dc:myTitle”,並以與檢索“ dc:title”相同的方式進行檢索[0]
  • 您可以按照Alex所述的方式檢索“ mine.title”的值。

    資源rs = getResourceResolver()。getResource(fileReference +“ / jcr:content / metadata”); ValueMap damAssetValueMap = damResource.adaptTo(ValueMap.class);

    字符串shortName = damAssetValueMap.get(“ shortName”,String.class);

  • 注冊一個新的名稱空間並定義選項(在您的情況下為“我的”)。 看看"/libs/dam/nodetypes""/libs/dam/options/metadata"可能會有所幫助。

[0]檢查"/libs/dam/options/metadata"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM