Ejemplo: dividir un archivo XML en varios archivos

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Diseño de asignaciones > Procesar varios archivos de entrada o salida simultáneamente >

Ejemplo: dividir un archivo XML en varios archivos

Este ejemplo demuestra cómo se pueden generar varios archivos XML de forma dinámica a partir de un solo archivo XML de origen. Este ejemplo es el archivo de muestra <Documentos>\Altova\MapForce2019\MapForceExamples\Tutorial\Tut-ExpReport-dyn.mfd.

 

El archivo XML de origen (situado en la misma carpeta que la asignación) está compuesto por un informe de gastos de alguien llamado Fred Landis y contiene cinco conceptos de gastos de diferentes tipos. El objetivo de esta asignación de datos es generar un archivo XML por cada concepto de gasto.

dyn-xml2xml2

mf-ExpReport.xml (en la vista Cuadrícula de Altova XMLSpy)

Como el atributo type define el tipo de gasto, este será el elemento que usaremos para dividir el archivo de origen. Para conseguir nuestro objetivo debemos seguir estos pasos:

 

1.Insertamos una función concat (se puede arrastrar desde la biblioteca de funciones core | string functions de la ventana Bibliotecas).
2.Insertamos una constante (clic en el comando Insertar | Constante) e introducimos el valor ".xml".
3.Insertamos la función auto-number (se puede arrastrar desde la biblioteca de funciones core | generator functions de la ventana Bibliotecas).
4.Hacemos clic en el botón btn_file o btn_file_string del componente de destino y seleccionamos Usar nombres de archivo dinámicos dados por la asignación.
5.Para terminar creamos las conexiones que se ven en la imagen siguiente y hacemos clic en el panel Resultados para ver el resultado de la asignación.

tut-ExpReport-dyn-MFBAS

Tut-ExpReport-dyn.mfd (MapForce Basic Edition)

Tenga en cuenta que los archivos de salida resultantes tendrán nombres dinámicos construidos de la siguiente manera:

 

El atributo type aporta la primera parte del nombre de archivo (p. ej. "Travel").
La función auto-number aporta el número secuencial del archivo (p. ej. "Travel1", "Travel2" y así sucesivamente).
La constante aporta la extensión del archivo, que es ".xml". Por tanto, el nombre del primer archivo de salida es "Travel1.xml".

© 2019 Altova GmbH