我正在致力於Adobe CQ。我正在提取原始文件的元數據,並獲取元數據作爲IIOMetadata
對象。將XML輸入流映射到JCR
我映射XML輸入流,以JCR,由session.importXml
但因爲我的XML是像
<parentTag name ="" value =""><child tag.....</parentTage>
(它的意思是有沒有像parent : properties
,沒有用冒號標記的)
所以後映射,我得到所有的屬性名稱作爲節點,並有值作爲節點屬性,因爲這是地獄沒有。的節點。
你能告訴我有什麼方法可以正確映射嗎?
注: 我從CRW文件中提取元數據,並且我得到IIOMetadata
爲對象。 然後我將這個IIOMetadata
對象轉換爲XML輸入流。然後session.import
ImageReader reader = ImageIO.getImageReaders(tempFile).next();
final IIOMetadata metadata = reader.getImageMetadata(0);
String[] mdatanames = metadata.getMetadataFormatNames();
for(int i=0;i < mdatanames.length; i++)
{
Node metadatadom = metadata.getAsTree(mdatanames[i]);
DOMSource source = new DOMSource(metadatadom);
StringWriter writer = new StringWriter();
StreamResult result1 = new StreamResult(writer);
ByteArrayOutputStream os = new ByteArrayOutputStream();
StreamResult result = new StreamResult(os);
Transformer transformer =
TransformerFactory.newInstance().newTransformer();
transformer.transform(source, result);
transformer.transform(source, result1);
ByteArrayInputStream bais = new
ByteArrayInputStream(os.toByteArray());
String nodePath1 = asset.getPath() + "/jcr:content/metadata" ;
session.importXML(nodePath1, bais,
ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW);
String metadata_in_xml = writer.toString();
}
映射我用ImportUUIDBehavior.IMPORT_UUID_COLLISION_REPLACE_EXISTING
了。
請幫忙.. 我想映射像默認映射那樣的元數據,就像DNG文件和其他支持的文件一樣。