We export “records” to an xml file; one of our customers has complained that the file is too big for their other system to process. Therefore I need to split up the file,
There is nothing built in that can handle this situation easily.
Your approach sounds reasonable, though I would probably start with a "skeleton" document containing the elements that need to be repeated and generate several documents with the "records".
Update:
After a bit of digging, I found this article describing a way to split files using XSLT.