Hola:
Deberías intentar simplificar el código ya que me he perdido... no sé porqué hay tantos controles de errores (try/catch), supongo que bastaría consultando si algún nodo tiene hijos (hasChildNodes).
Cosas que he notado que podrían estar mal es que parece que acumulado es tanto un array como una función, y habría conflicto... y document.write nunca debe usarse después de cargarse la página (por ejemplo en una petición Ajax)
Saludos