Les comento que tengo un pequeño problema con un archivo XML. El mismo no es un archivo XML normal y/o habitual y no encuentro la forma de separar los segmentos "padre" de los "hijos" y "sub hijos" por lo que acudo a ustedes para que puedan indicarme si alguien conoce una vía más efectiva de hacer la lectura y procesamiento de datos.
El ejemplo de XML es el siguiente:
Using xml Syntax Highlighting
- <!-- Arbol Padre -->
- <Decidir> Tipo de trafico
- <!-- Arbol Hijo -->
- <Decidir PorDefecto="si"> TValor
- <NodoTerminal atr="500">
- </NodoTerminal>
- </Decidir>
- <!-- Arbol Hijo -->
- <Decidir PorDefecto="no" TipoCondicion="Conjunto" atr0="0" atr1="1"> Numero
- <!-- Arbol sub-hijo -->
- <Decidir PorDefecto="no" TipoCondicion="Conjunto" atr0="3"> TT3
- <!-- Arbol sub-Hijo de hijo -->
- <Decidir PorDefecto="si"> TT
- <NodoTerminal atr="502">
- </NodoTerminal>
- </Decidir>
- <Decidir PorDefecto="no" TipoCondicion="Conjunto" atr0="A00"> Listas
- <Decidir PorDefecto="si"> TT
- <NodoTerminal atr="503">
- </NodoTerminal>
- </Decidir>
- <Decidir PorDefecto="no" TipoCondicion="Conjunto" atr0="0"> Grupos
- </Decidir>
- <Decidir PorDefecto="si"> TT
- <NodoTerminal atr="520">
- </NodoTerminal>
- </Decidir>
- </Decidir>
- </Decidir>
- <Decidir PorDefecto="si"> TValor
- <NodoTerminal atr="500">
- </NodoTerminal>
- </Decidir>
- </Decidir>
- <Decidir PorDefecto="no" TipoCondicion="Conjunto" atr0="4"> Numero
- <Decidir PorDefecto="no" TipoCondicion="Conjunto" atr0="3"> TT3
- <Decidir PorDefecto="si"> TT
- <NodoTerminal atr="502">
- </NodoTerminal>
- </Decidir>
- <Decidir PorDefecto="no" TipoCondicion="Conjunto" atr0="A00"> Listas
- <Decidir PorDefecto="si"> TT
- <NodoTerminal atr="503">
- </NodoTerminal>
- </Decidir>
- <Decidir PorDefecto="no" TipoCondicion="Conjunto" atr0="0"> Grupos
- </Decidir>
- </Decidir>
- <Decidir PorDefecto="si"> TT
- <NodoTerminal atr="520">
- </NodoTerminal>
- </Decidir>
- </Decidir>
- </Decidir>
- </Decidir>
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Del archivo debería poder filtrar por los primeros atr0 o atr1 que aparecen en los árboles Hijo; posteriormente filtrar los atr0 en los árboles sub-hijo y obtener el atr (que es lo que más me interesa) del último sub-hijo de hijo. Lo he tratado de especificar en el archivo tan claro como he podido.
Cabe mencionar que el archivo XML puede tener varios árboles de sub-hijos y también varios árboles de hijos de sub-hijos y dentro ellos más árboles probablemente.
No sé si exista algún módulo que pueda ayudarme en esto, o si deberé procesar el archivo haciendo un script a la medida para ello.
De antemano, muchas gracias a todos.