• Publicidad

Método recursivo para construir XML

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Método recursivo para construir XML

Notapor Javier » 2014-10-13 06:46 @323

Hola, perleros:

Estoy utilizando XML::Libxml para convertir una serie de texto en un documento xml que las anide.
Dada la lista:
Sintáxis: [ Descargar ] [ Ocultar ]
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:
Sintáxis: [ Descargar ] [ Ocultar ]
Using xml Syntax Highlighting
  1. <raiz>
  2.    <item nivel="1" txt="[texto]"/>
  3.    <item nivel="1" txt="[texto]">
  4.       <item nivel="2" txt="[texto]">
  5.          <item nivel="3" txt="[texto]"/>
  6.       </item>
  7.    </item>
  8.    <item nivel="1" txt="[texto]"/>
  9. </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.
Javier
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2014-08-31 03:24 @183

Publicidad

Re: Método recursivo para construir XML

Notapor explorer » 2014-10-18 04:44 @239

¿Es realmente necesario usar XML::LibXML? Creo que se podría resolver con algún algoritmo sencillo/recursivo...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado