EDIT Auf die Einrückung im Quelltext zu verzichten, wäre nur eine Notlösung.
Der Whitespace gehört aber leider zum DOM-Baum, darüber bin ich auch schon mal gestolpert.
Mit
document.documentElement.normalize();
entfernst du Textknoten, die nur aus Whitespace bestehen aus dem DOM-Baum. Außerdem werden adjazazente Textknoten zu einem Knoten kollabiert, aber der Fall sollte nur auftreten, wenn der DOM-Baum mit JavaScript erzeugt wurde.
Alternativ kannst serverseitig führenden und anhängenden Whitespace entfernen, die meisten Programmiersprachen haben dafür eine Funktion trim.