我正在研究 Adobe CQ。我正在提取原始文件的元数据,并将元数据作为IIOMetadata
对象。
我将 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 文件和其他受支持的文件的默认映射。