Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.

How to remove childNode in AEM

Avatar

Level 1

I would like to remove the child node by keeping the parent node hierarchy as is. can someone help how to achieve this.

For e.g.

/content

     /person

          /name

          /age

I would like to remove only child node "/name" here

3 Replies

Avatar

Level 3

you can use various ways via code using java JCR  API

----

Node root = getJcrSession().getRootNode();
 
String path = getFacetPath( repositoryId, facetId, name );
 
if ( root.hasNode( path ) )
 
{
 
Node node = root.getNode( path );
 
do
 
{
 
// also remove empty container nodes
 
Node parent = node.getParent();
  node
.remove();
  node
= parent;
 
}
 
while ( !node.hasNodes() );
 
}
 
}
 
catch ( RepositoryException e )
 
{
 
throw new MetadataRepositoryException( e.getMessage(), e );
 
}

---------------

Avatar

Level 1

I would like to retain the parent structure for e.g.

/content

     /person

          /name

          /age

/content/person should retain while "name" is removed only

Avatar

Employee Advisor

Another way would be to run the groovy script to remove a node from a specific path. check [1] and "Remove corrupted nodes manually" at [2] on how to use it.

This should only remove the child node

[1] Groovy script to remove a node at a given path · GitHub

[2] Offline Compaction fails with SegmentNotFoundException & IllegalArgumentException