I'm fairly new to this too, and I've just been researching and working on this very topic. You'll find lots of suggestions on the Web, but little substance:
Third-party products: Java classes, .NET classes... No, thank you.
Some Russian PhD claims to have a str-split-to-whatever function in his FXSL library that he promotes all over the place. Found the library; no such function. Thanks for nothing, comrade.
Other sources show how to recursively break down a delimited string. The problem with that is it's XHTML-oriented: you don't have the opportunity to name your elements, they're separated by <BR/>s or another static tag.
Then there's the "wait for XSLT v2" crowd. Useless.
I finally used sed to wrap my CSV rows (the whole row) with begin and end tags so the whole row becomes an XML element. I pass that file off to xt and use XSLT string functions to split the row up on the commas, wrapping each value in the named tag I want. The problem with this approach is that it gets out-of-hand very quickly. My rows have a dozen columns, of which I'm interested in four. Here's my XSL for column 8:
<!-- AVAIL, column 8 -->
<on-hand><xsl:value-of select="substring-before(substring-after(substring-after(substring-after(substring-after(substring-after(substring-after(substring-after(.,','),','),','),','),','),','),','),',')"/></on-hand>
There could be a better way to do this, but I couldn't find it.
With 105 columns to convert to XML elements, your best bet is to bite the bullet and write a program in your favorite language.
If you figure out something smarter than what I'm doing, please report back!
Good Luck,
harebrain