Content management system CQ5 CRX JCR-节点迭代-如何重命名节点?

Content management system CQ5 CRX JCR-节点迭代-如何重命名节点?,content-management-system,aem,jcr,sling,Content Management System,Aem,Jcr,Sling,当使用ApacheSling和CRX/CQ5以及JCR等时 是否可以迭代JCR中的CQ5页面节点并重命名页面 我目前有一个脚本,可以更改特定路径上所有子页面的属性 我正在拼命寻找一种方法,使用NodeInterator和Node类在特定路径上重命名每个页面(不仅是标题和任意属性,还包括形成路径的名称) 例如: -content/xproject/shared/cars/a/abegro-assam -content/xproject/shared/cars/m/motofuel-iss 我想做

当使用ApacheSling和CRX/CQ5以及JCR等时

是否可以迭代JCR中的CQ5页面节点并重命名页面

我目前有一个脚本,可以更改特定路径上所有子页面的属性

我正在拼命寻找一种方法,使用NodeInterator和Node类在特定路径上重命名每个页面(不仅是标题和任意属性,还包括形成路径的名称)

例如:

-content/xproject/shared/cars/a/abegro-assam
-content/xproject/shared/cars/m/motofuel-iss
我想做一些相当于:

while(cars.hasNext()) {
   Node node = cars.nextNode();

   //this is the functionality I want somehow...
   node.setName("some-other-name");

   //similar to how we would set JCR properties
   node.setProperty("someProperty", "someValue");
}
请告知我可以在CQ5/Sling/Apache/CRX堆栈中找到此功能的地方,因为这将非常有用


我知道我可能能够适应()该节点以外的其他类-但我非常不确定如何继续。

要重命名JCR节点,请将它们移动到不同的路径,可以使用需要save()调用的Session.move(…)或立即执行的Workspace.move(…)


我不确定这些是否以及如何干扰当前节点运算符-如果有问题,您可以使用迭代将要重命名的节点的路径添加到列表中,然后在节点运算符之外的列表中迭代以重命名节点。

要重命名JCR节点,请将它们移动到其他路径,您可以使用需要save()调用的Session.move(…)或立即执行操作的Workspace.move(…)

void rename(Node node, String newName) throws RepositoryException 
{
    node.getSession().move(node.getPath(), node.getParent().getPath() + "/" + newName);
    // Don't forget - not necessarily here at this place:
    // node.getSession().save();
}
我不确定这些是否以及如何干扰当前的NodeIterator—如果有问题,您可以使用迭代将要重命名的节点的路径添加到列表中,然后在NodeIterator之外的列表上迭代以重命名节点

void rename(Node node, String newName) throws RepositoryException 
{
    node.getSession().move(node.getPath(), node.getParent().getPath() + "/" + newName);
    // Don't forget - not necessarily here at this place:
    // node.getSession().save();
}