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)