One way to transform IATI XML data into the format you need is via XSLT transforms.
Although XSLT isn't the most intuitive of languages, you will find XSLT parsers available in most programming languages and across platforms, so XSLT as a means to convert IATI data is fairly portable. For that reason, I've started a library of XSLT transforms on GitHub here:
You can find some existing XSLT transforms that have been written, and if you've got any to add, please do get in touch / apply to be a contributor so that yours can be included.
If you are new to XSLT, there's a short tutorial of how to use the transform files in desktop software to convert IATI XML into a different format (e.g. CSV) over on the aidinfo labs site: http://aidinfolabs.org/archives/393
Other useful tools
Also in the IATI-XSLT git hub account you will find helper code. So far that includes:
- Codelist Lookup Generator https://github.com/aidinfolabs/IATI-XSLT/tree/master/helpers/code_list_lookups