And people mock COBOL - which is really good at things like this :-)
Have you thought about (in the case of the fixed file formats) uploading them as 'raw' ie to staging table in the DB and then using DB tools to load your more permanent hierarchy ? (its hard to know where your bottleneck is on the info given)
I've played a lot with external file format definitions over the years, and these days, I'd be more inclined to use something like BizTalk to handle the ETL stuff - else you're going to end up writing a system that looks like BizTalk anyway
[updated]
I'll add some more thoughts to this - one is, have a look at
http://www.unidex.com/overview.htm[
^] - if you had a pre-step that translated your xml files to 'flat' files then you could treat them the same - a description format like xflat's definitions can be used to have the 'definition' of the files ... Ive seen (even had) a book on this sort of thing, using 'like' an xsd descriptor file to process full EDI files - I'll see if I can find the name
[update 2]
See if you can find a copy of (no eBook sorry) "Using XML with Legacy Business Applications By Michael C. Rawlins" if you adopted a pipeline processing approach, converting all xml files to 'flat', then you can have the same upload process - then you just need to work out speeding up the load to your hierarchy - maybe you just need to look at transactions etc