This is something that comes up often. I have a groovy script to do this. It is available here.
https://github.com/ramanathanrv/utils/blob/master/groovy/split_xml.groovy
Usage: groovy split_xml.groovy <input_file_name> <no_of_pieces>
PS: This is not my code. I got this code from somewhere but really forgot the source.