Hola, perleros:
Estoy utilizando XML::Libxml para convertir una serie de texto en un documento xml que las anide.
Dada la lista:
Using text Syntax Highlighting
1, [texto]
1, [texto]
2, [texto]
3, [texto]
1, [texto]
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Quiero pasar a:
Using xml Syntax Highlighting
<raiz>
<item nivel="1" txt="[texto]"/>
<item nivel="1" txt="[texto]">
<item nivel="2" txt="[texto]">
<item nivel="3" txt="[texto]"/>
</item>
</item>
<item nivel="1" txt="[texto]"/>
</raiz>
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
El problema es que cuando creo la instancia del documento donde almaceno el nuevo orden, hay un momento en el que tengo que apuntar al último hijo del último hijo, etc. mediante el método raiz->lastChild (nivel1), raiz->lastChild->lastChild (nivel2), etc., para ir reordenándolo.
¿Alguna idea de cómo repetir el método n veces sin necesidad de ir accediendo al nodo en el que quiero anidar? Si sólo hubiera 2 niveles podría hacerlo vía una condicional pero me temo que puedo tener una cantidad indefinida de niveles.
Gracias.