anElement.appendChild(doc.createTextNode(data));
В data содержится «<html>...</html>». Надо сделать так, чтобы «<» и «>» попадали в элемент как есть. Понимаю, что это немного противоречит сути, но я повторяю существующий формат некого «xml», а оригинал сделан именно так.