Richard,
Looking at your XML, I see nothing that separates the category 1 from the category 2 entries. It’s all just one big XML file where each entry is simply BusinessData. I do see on Sheet1 (2) of the XSLX file there are categories, but those categories are not in the XML samples.
Even with scripting, there would have to be something to delineate each category for a script to work. The same applies to an XSL/XSLT instruction. So the categories from the above sheet have to be in the output data that would some into ID.
Another option would be to use EmData’s InData to parse a tab-delimited file and put the data where it belongs. Even so, it would need a properly written script in InData to loop through as it was building the presentation data to have entries where they belong. This can also be done with an XSLT by it physically copying entries to the succeeding categories. I find writing the script/instructions for InData easier than XSL/XSLT files.
Likely all this could be obviated by building a proper Access database to manage these entries where one can pick and apply multiple categories to an individual entry. Then the XML or CSV output file from Access would simply have entries show up in their proper categories. Once that file is output properly, it would then be a matter of making the paragraph styles’ keep options to force a new page or column at the category change if desired. And a proper database has other advantages for long-term use too.
This is simply all off the top of my head. Any which means you go it will be a hefty learning curve.
Mike