使用资产API如何迭代AEM中的父节点



我在aem crxde(/content/dam/parent(内有父级节点。在父节点文件夹中,有多个子节点。

使用资产API如何迭代子节点。?

之后,我必须读/写属性。!

代码在这里: -

AssetManager AssetManager = Resolver.Adaptto(AssetManager.Class(;

Asset Damasset = AssetManager.getAsset("/content/dam/parent"(;

在父节点内有多个子节点。例如: -

  • /content/dam/parent/child1
  • /content/dam/parent/child2
  • /content/dam/parent/child3我需要访问和读取这些节点的属性。!

您无法从非资产资源(文件夹(获得资产对象。代码中对getAsset方法的调用将返回null,这是正常且预期的!

如果您需要获取大坝:资产儿童,请在评论中建议您的问题,甚至是SQL2查询的解决方案,例如:

final Iterator<Resource> allAssetChildren = resolver.findResources( String.format("SELECT * FROM [dam:Asset] AS node WHERE ISDESCENDANTNODE(node,'%s')", "/content/dam/parent"), javax.jcr.query.Query.JCR_SQL2 );

最后,您可以使用Adaptto Framework将任何获得的资源调整为资产对象。

通常,大坝:资产将没有大坝类型的孩子:资产。一个例外是子资产。子资产是在主要资产是复合材料的情况下生成的。很少的例子

  • pdf,每个页面都被提取为子资产。
  • PSD,每一层被提取为子资产。
  • 从AI故事板提取子资产。

在所有这种情况下,约定是将它们在称为 subsestets 的特定子文件夹中。处理Asset时,您可以使用getSubAssets方法。

您无法通过将文件夹节点调整为资产来获得有效的资产对象。要在资源上获取资产中的资产。

如果您需要在子文件夹中查看,请尝试使用节点迭代/树遍历,以简化用例。您可以使用正确的搜索策略使用吊索查询。

jcr查询不是最性能的选择,只有在用用例中的树遍历中,您才能使用。

最新更新