Hallo,
wenn du mit firstChild arbeiten willst (musst?), dann musst Du dich durch den ganzen DOM-Baum durchhangeln. Kennst Du schon den DOM-Inspector im Mozilla?
In deinem Fall vermute ich, das das "1. Kind" des <body> keine Daten, sondern einen weiteren Knoten enthält.
Mit innerHTML erhält man alles, einschließlich den Tags. Ist zwar vom w3c nicht abgesegnet, funktioniert aber in vielen modernen Browsern.
Gruß, Jürgen