Estoy haciendo un programa que toma por entrada varios informes médicos, cada uno almacenado en un fichero distinto, y según va identificando palabras clave (diagnóstico, evolución, analítica...) en los informes, genera etiquetas XML y guardar cada informe en otro fichero distinto de extensión xml. Para hacer esto utilizo el módulo XML::Simple.
El caso es que todos los informes no tienen la misma estructura, en algunos por ejemplo aparecerá el apartado "diagnóstico" pero en otros no...). Para cada informe voy guardando la información en una variable llamada $xml, y en cuando termina de leer el informe completo lo exporto a un documento XML usando la función XMLout($xml,...).
Después de hacer cada XMLout, quiero eliminar la estructura generada en $xml, y esto es lo que no termino de conseguir.
Esto es parte de lo que puede tener $xml al leer un informe:
Using perl Syntax Highlighting
$xml = {
'Id' => [],
'Evolucion' => [],
'Diagostico' => {
'Diferencial' => [],
'Clinico' => [],
'Impresion' => [],
'Histeroscopia' => []
};
'Id' => [],
'Evolucion' => [],
'Diagostico' => {
'Diferencial' => [],
'Clinico' => [],
'Impresion' => [],
'Histeroscopia' => []
};
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Lo que quiero conseguir es algo así como:
Using perl Syntax Highlighting
Vamos, hacerlo nulo, resetearlo...
Lo he intentando haciendo lo siguiente:
Using perl Syntax Highlighting
@{ $xml->{"Evolucion"} } = ();
@{ $xml->{"Diagostico"}->{"Impresion"} } = ();
@{ $xml->{"Diagostico"}->{"Histeroscopia"} } = ();
@{ $xml->{"Diagostico"}->{"Clinico"} } = ();
@{ $xml->{"Diagostico"}->{"Diferencial"} } = ();
#Viendo que con lo anterior sólo me quedaba "Diagnostico" sin eliminar, ya que tiene subetiquetas, intenté poner:
@{ $xml->{"Diagostico"} } = ();
#Pero me daba error.
@{ $xml->{"Diagostico"}->{"Impresion"} } = ();
@{ $xml->{"Diagostico"}->{"Histeroscopia"} } = ();
@{ $xml->{"Diagostico"}->{"Clinico"} } = ();
@{ $xml->{"Diagostico"}->{"Diferencial"} } = ();
#Viendo que con lo anterior sólo me quedaba "Diagnostico" sin eliminar, ya que tiene subetiquetas, intenté poner:
@{ $xml->{"Diagostico"} } = ();
#Pero me daba error.
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Pero solo me funciona bien en el apartado "Evolucion", ya que no tiene subetiquetas.
El problema por lo tanto es que genero documentos XML con varias etiquetas sin contenido (justo las etiquetas que a su vez contienen más etiquetas, como es el caso de "Diagnostico"), y eso es lo que quiero evitar.
Muchísimas gracias por vuestra paciencia,
¡Saludos!