in reply to Modify XML tags

What do you mean by "XPath feature being case-insensitive"? XPath is case sensitive, AFAIK.

I usually use XML::XSH2 for XML manipulation. To lowercase all element and attribute names, you can use:

rename xsh:lc(name(.)) (//* | //@*)
Be careful if the lowercase attribute already exists!