Here is the fiddle script to convert all tag names jcr:title to lowercase. Modify according to your requirement
package apps.acs_002dtools.components.aemfiddle.fiddle;
import com.day.cq.search.*;
import com.day.cq.wcm.api.*;
import com.day.cq.dam.api.*;
import org.apache.sling.api.*;
import org.apache.sling.api.resource.*;
import org.apache.sling.api.servlets.*;
import java.io.IOException;
import javax.jcr.*;
import java.util.*;
public class fiddle extends SlingAllMethodsServlet {
@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException {
// Code here
//response.getWriter().println("Hello from " + request.getResource().getPath());
Resource resource = request.getResourceResolver().getResource("/content/cq:tags/we-retail");
Session session = request.getResourceResolver().adaptTo(Session.class);
if (resource != null) {
// Writing HTML in servlets is usually inadvisable, and is better suited to be provided via a JSP/Sightly template
// This is just an example.
if (resource != null) {
Iterator<Resource> linkResources = resource.listChildren();
while (linkResources.hasNext()) {
Resource childResource = linkResources.next();
try{
Node childNode = childResource.adaptTo(Node.class);
String tagName = childNode.getProperty("jcr:title").getString();
childNode.setProperty("jcr:title",tagName.toLowerCase());
session.save();
response.getWriter().write(""+childNode.getProperty("jcr:title").getString());
}catch(RepositoryException re){}
}
}
// By Default the 200 HTTP Response status code is used; below explicitly sets it.
response.setStatus(SlingHttpServletResponse.SC_OK);
} else {
// Set HTTP Response Status code appropriately
response.setStatus(SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR);
response.getWriter().write("ERROR");
}
}
}