Parseo de arbol con tags

Ricardo Muñoz A. rmunoz en pjud.cl
Vie Ene 30 12:40:36 CLST 2004


On Fri, 30 Jan 2004 11:08:41 -0300
Bernardo Suarez <bsuarez en ebs.cl> wrote:

> Tengo que parsear un string y meterlo en una estructura más manejable.
> El problema es el formato... Ej:
> [{"nombre campo",valor},{nombre campo,[{nombre campo,valor},{nombre 
> campo,valor}]}]
> 
> El formato de este mensaje no lo puedo cambiar, por que lo genera una 
> aplicación propietaria.
> 
> Eso me define una estructura de árbol, y quiero guardarlo en un arreglo 
> de arreglos, o mejor aún en un objeto. La estructura donde lo guardo no 
> me complica tanto como el parseo.
> 
> Se me habia ocurrido que puede no ser caro transformar eso (usando algo 
> tan simple como replace) en xml y luego usar una clase como XPath para 
> accesar los valores.
> 
> Si alguien tiene una idea mejor....
> 
> Gracias

quizas con expresiones regulares se podria hacer:

eregi("^[{\"([a-z]+)\",([1-9]+)},{([a-z]+),[{([a-z]+),([1-9]+)},{([a-z]+),([1-9]+)}]}]",$mensaje,$arreglo)

luego obtienes los valores mediante $arreglo[1],$arreglo[2],etc.

más info en:
http://cl.php.net/manual/es/ref.regex.php

-- 
Ricardo Muñoz A. - rmunoz en pjud.cl
Usuario Linux #182825 (counter.li.org)