删除所有子节点的脚本?

时间:2019-09-11 21:26:38

标签: groovy magnolia

我正在通过Nodes Endpoint API将数据从REST API导入到Magnolia中。我正在编写一个Python脚本来进行导入。但是,有时脚本会失败-由于REST API中的数据格式错误或值为空。

我更新了我的脚本以处理格式错误或空值。但是在重新运行脚本之前,我需要清除以前导入的节点。

如何编写Groovy脚本以删除节点的所有子级?

1 个答案:

答案 0 :(得分:0)

以下脚本将删除给定工作空间名称和父节点绝对路径的所有子节点:

session = ctx.getJCRSession("WORKSPACE_NAME")
node = session.getNode("ABSOLUTE_PARENT_NODE_PATH")
childNodes = node.getNodes()
node.getNodes().each { it.remove() }
session.save()

例如(从hotchicken-com工作区中删除website节点的子页面):

session = ctx.getJCRSession("website")
node = session.getNode("/hotchicken-com")
childNodes = node.getNodes()
node.getNodes().each { it.remove() }
session.save()

有关更多脚本示例,请参见Groovy Shell Scripts

相关问题