In freepascal, look for TXMLDocument, and the xmlread unit. There's a good tutorial here: http://wiki.freepascal.org/XML_Tutorial . You need the dom unit as well, I'm not sure what all others.

It's fairly painless. I've implemented tiled maps in a slightly less efficient way -- straight up file io. I export them as CSV, and based on the number of layers I have I simply skip lines to get to the CSV of each layer. It's certainly not flexible, but if your map format is going to be the same (number of layers, size, etc), it gets rid of whatever XML size overhead there may be, although I really doubt this is worth it.