Hola de nuevo...
Al parecer se debe a la forma de descarga de los datos desde el servidor, al no setear la propiedad "async" en "false", si no se coloca por defecto es "true".
Código:
xmlDoc = new ActiveXObject("microsoft.xmlDom");
xmlDoc.async=false;
xmlDoc.load("marcas.xml");
var raiz=xmlDoc.documentElement;
tome tu ejemplo y le modifique algunas cosas, por si lo quieres ver:
http://www.webdevprojects.host.sk/dt/xml-js/, solo le falta compatibilidad con NS, pero en eso estoy.
Saludos....