使用 ASSET API 如何在 AEM 中迭代父节点?
Use ASSET API how to iterate a parent node in AEM?
我在 AEM CRXDE (/content/dam/parent) 中有父资产节点。父节点文件夹内有多个子节点。
使用资产 API 我如何迭代子节点。?
之后我必须 read/write 属性。!
代码在这里:-
AssetManager assetManager=resolver.adaptTo(AssetManager.class);
资产 damAsset =assetManager.getAsset("/content/dam/parent");
在父节点内我有多个子节点。
例如:-
- /content/dam/parent/child1
- /content/dam/parent/child2
- /content/dam/parent/child3
我需要访问这些节点的 read/write 属性。!
您无法从非资产资源(文件夹)中获取资产 object。在您的代码中调用 getAsset 方法将 return 为 null,这是正常的,符合预期!
如果您需要获得 dam:Asset children,请使用 Sharath Madappa 在您的问题评论中建议的解决方案,甚至是 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 框架将任何获取的资源改编为资产 object。
通常 dam:Asset 不会有类型 dam:Asset 的 children。一个例外是子资产。子资产是在主资产复合的情况下产生的。几个例子
- PDF,每页提取为子资产。
- PSD,每一层都被提取为一个子资产。
- 从 AI 故事板中提取子资产。
在所有此类情况下,惯例是将它们放在名为 subassets 的特定子文件夹中。处理 Asset
时,您可以使用 getSubAssets
方法。
您无法通过将文件夹节点调整为资产来获得有效资产 object。要获取文件夹中的资产,请对资源使用 getChildren。
如果您需要在子文件夹中查找,请尝试节点 iteration/tree 遍历以获得更简单的用例。您可以使用 Sling Query 和正确的搜索策略。
JCR 查询不是最高性能的选择,只有在树遍历不是用例的选项时才应使用。
我在 AEM CRXDE (/content/dam/parent) 中有父资产节点。父节点文件夹内有多个子节点。
使用资产 API 我如何迭代子节点。?
之后我必须 read/write 属性。!
代码在这里:-
AssetManager assetManager=resolver.adaptTo(AssetManager.class);
资产 damAsset =assetManager.getAsset("/content/dam/parent");
在父节点内我有多个子节点。 例如:-
- /content/dam/parent/child1
- /content/dam/parent/child2
- /content/dam/parent/child3 我需要访问这些节点的 read/write 属性。!
您无法从非资产资源(文件夹)中获取资产 object。在您的代码中调用 getAsset 方法将 return 为 null,这是正常的,符合预期!
如果您需要获得 dam:Asset children,请使用 Sharath Madappa 在您的问题评论中建议的解决方案,甚至是 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 框架将任何获取的资源改编为资产 object。
通常 dam:Asset 不会有类型 dam:Asset 的 children。一个例外是子资产。子资产是在主资产复合的情况下产生的。几个例子
- PDF,每页提取为子资产。
- PSD,每一层都被提取为一个子资产。
- 从 AI 故事板中提取子资产。
在所有此类情况下,惯例是将它们放在名为 subassets 的特定子文件夹中。处理 Asset
时,您可以使用 getSubAssets
方法。
您无法通过将文件夹节点调整为资产来获得有效资产 object。要获取文件夹中的资产,请对资源使用 getChildren。
如果您需要在子文件夹中查找,请尝试节点 iteration/tree 遍历以获得更简单的用例。您可以使用 Sling Query 和正确的搜索策略。
JCR 查询不是最高性能的选择,只有在树遍历不是用例的选项时才应使用。