OK ma da come l'avevi messa nella precedente risposta sembrava che tu non sapessi cosa fosse la ricorsione.

Il mio suggerimento in questo caso e' di trattare la struttura dati come albero generico.
Quindi creare una procedura che estrae il nodo radice e i nodi figli, quindi scorri iterativamente i nodi figli e per ogni nodo figlio lanci la ricorsione. QUindi la procedura popola un array che ritorna il sotto-array popolato al chiamante in modo che quando si chiude la ricorsione hai correttamente popolato l'intera struttura dati.

A questo punto hai eseguito l'estrazione dei dati e la conversione nella opportuna struttura, a questo punto crea 1 procedura che li converte in codice html human-readable