No se si te servirá esto:
   Código PHP:
    function pasarXML(){
var nodos = new Array();
var xmlstr = '<mixml><nodo>hola</nodo><nodo>adios</nodo></mixml>'
var expreg = /([a-z]+)/g;
while(expreg.test(xmlstr)){
      nodos.push(RegExp.$1);
}
/*
Array nodos: mixml,nodo,hola,nodo,nodo,adios,nodo,mixmail
*/
root = document.createElement(nodos[0]);
var i=1;
while(i<nodos.length){
      if(i != (nodos.length -1)){                    
          nodo = document.createElement(nodos[i]);
                i++;
                texto = document.createTextNode(nodos[i]);
                nodo.appendChild(texto);
                root.appendChild(nodo);
      }
            i += 2;
}
 
} 
    
  Funciona siempre que no haya ninguna etiqueta vacia, del estilo a: 
He supuesto que siempre tendrá algun valor.  
Si tienes alguna duda preguntala. 
Saludos