Is there any way to directly query the block chain for the body of a transaction given its hash?
You can use JSON-RPC to achieve this. The only missing information will be the relayed_by field.

To use the JSON-RPC API of your client edit your bitcoin.conf file like this

rpcuser=user 
rpcpassword=password 
rpcport=8332
server=1


Then you can use a library to query the API like JSON-RPC for PHP

You can also do it on a much easier way by using the command line

./bitcoind getblock c15f762e8dbbdd407534047ef2a9211ca0e79c3625d5fe73cdacade4f9118d6