I was using sfwmd.gov data, by processing through a XSLT stylesheet, first because the incompatibility, and to restructure, and filter the data. Restructure includes picking the part out that Windy will work with, adding graphics, putting in a bounding box (don't care about hurricane tracks in Greenland), which tracks/ensembles to show, and converting start time + offset into a time.
The stylesheet operates on a XML file with the URL(s) to pull from, and clipping box (NSEW). msxml6 on Windows seems to be extremely fast (probably JIT compiles) and can easily plow thorough 100's files totaling several GB.
My humble opinion: Any interoperability application which takes in XML data should have the option of passing the XML through a XSLT transformation which by default the identity transform. This allows fixes to be made to inputs without breaking open code, particularly when an outside source changes its format.
I sometimes apply XSLT transforms as filtering rules to URLs/IP's with a proxy (Privoxy) running on a router to handle it with network hardware. This can also fix things going out. Then you don't have to fiddle with clients.
XSLT is XML that transforms XML files(s) into XML (or non XML) -- this is said in the sense that a SQL select query transforms database table(s) into another table. XSLT not a procedural language, its declarative - to me much less error prone. XSLT's 'program flow' is a parser doing a tree traversal, and content matching criteria can be routed through different rules. On the simplest level, you can pass through, ignore, modify or replace. XSLT is Turing complete, but certain tasks are real ugly to accomplish. I see XSLT as a sort of OODBMS to work with hierarchical cursors.