Is it more efficient to parse external XML or to hit the database?
Consuming the webservices is more efficient because there are a lot more things you can do to scale your webservices and webserver (via caching, etc.).  By consuming the middle layer, you also have the options to change the returned data format (e.g. you can decide to use JSON rather than XML).  Scaling database is much harder (involving replication, etc.) so in general, reduce hits on DB if you can.
I was wondering when dealing with a web service API that returns XML, whether it's better (faster) to just call the external service each time and parse the XML (using ElementTree) for display on your site or to save the records into the database (after parsing it once or however many times you need to each day) and make database calls instead for that same information.