¿Y qué módulo me recomiendas?
Te comento, esto genera una estructura de jerarquías que otro programa usa para leer e interpretar, es decir, chupa esta información y la representa gráficamente.
Bien, el problema es que no trata esta jerarquía de la manera que un xml la representaría.
XML abre con un nodo raíz, para la primera rama del árbol, abre un nodo, dentro de este otro, dentro de este otro, etc. etc... así hasta llegar al ultimo nodo (como el desplegable del árbol de directorios de un Windows o Linux).
Bien, este programa lo hace de manera lineal, no en modo de arboles.
Es decir, si quiero pintar una rama desde el tronco hasta la punta, primero abro con service, digo los elementos que tiene por debajo, cierro service. Abro service, selecciono el primer elemento de los que antes dije y represento qué elementos tiene por debajo, cierro service. Vuelvo abrir service, del anterior elemento y declaro que tiene por debajo, si no tiene nada, no declaro nada, cierro service. Vuelvo abrir service y me voy al "nivel" anterior y voy con el siguiente de ese nivel, etc. así hasta terminar todas las ramas.
Como veis es un sistema del diablo que menuda tela quien lo "parió" porque lo normal sería que usara el estándar de xml que es tremendamente más sencillo para eso y viene dado de una forma "nativa" al formato del fichero, pero no.
Cuál es el principal problema de esto: que elementos que pertenecen al mismo nivel de jerarquía, no están dentro del mismo nivel de tags, con lo que tengo que construir yo esa jerarquía a nivel de hashes para luego quizás exportarlo como dios manda en su formato xml.
La opción que más se me está acercando es no usar el XML::simple ya que no me sirve, para acceder a la información del xml si, pero para parsearlo en su manera correcta no, con lo que debería de ir escaneando con bucles cada rama, indicando que busque valores de un array que sería el nivel anterior, dentro del xml, con expresiones regulares.
¿Qué os parece? ¿Sudaré tinta china?