Как-то так
var isDoctype = function(el) {
return /^(<!DOCTYPE|<\?xml)/i.test(el.text);
};
var comments = targetDocument.getElementsByTagName('!');
for (var i = 0; isDoctype(comments[i]); i++) {
doctype += comments[i].text;
}
Тут ещё выдёргиваются всякие xml-ные заголовки.