XPath mejora los informes en formato XML
En nuestra publicación anterior, titulada "Creación de informes elegantes para datos XML de GPS", utilizamos una expresión XPath para seleccionar nodos de un documento XML con el fin de crear un gráfico de líneas de altitud. También se puede utilizar XPath para calcular valores. Altova StyleVision ofrece un amplio soporte para XPath, y podemos escribir expresiones XPath para añadir información interesante a nuestros informes de datos XML de GPS. Por ejemplo, podemos procesar los datos de altitud almacenados por el dispositivo GPS en metros para crear un gráfico que muestre la altitud en pies sobre el nivel del mar.

La fórmula de conversión de metros a pies es: (metros x 3.2808399) = pies. Podemos aplicar este cálculo en el cuadro de diálogo de configuración del gráfico:
Ahora, el gráfico se generará utilizando los resultados del cálculo realizado a partir de los datos extraídos del archivo de origen.
Funciones de tiempo de XPath
Es posible que hayan notado que nuestro gráfico no incluye una definición de la escala del eje X. Eliminamos deliberadamente las marcas y los valores del eje X porque los dispositivos GPS almacenan información de los puntos de la ruta cada pocos segundos. El archivo correspondiente a la excursión de escalada en hielo contiene más de 1800 puntos de datos de altitud, y la gran cantidad de puntos de datos generó una serie de marcas que se fusionaron en una línea continua. Tampoco había suficiente espacio para incluir los valores correspondientes.
Pero, ¿no sería interesante saber cuánto tiempo duró la caminata? Podemos incluir esa información en nuestro informe utilizando la función de cálculo automático de StyleVision. La sección del diseño que se muestra a continuación ilustra tres elementos de cálculo automático que se han añadido al informe a través del menú Insertar / Cálculo automático / Valor, y que se han complementado con texto descriptivo.

Hacer clic derecho en cualquier elemento de cálculo automático abre un menú que proporciona acceso al cuadro de diálogo "Editar XPath", que se muestra a continuación en un tamaño reducido. Puede escribir una expresión XPath directamente en la ventana, o construir una seleccionando elementos, operadores y funciones de las listas correspondientes.
Para calcular el tiempo transcurrido del viaje, podemos utilizar las funciones XPath time y min(anyAtomicType) junto con expresiones XPath para time Para cada punto de seguimiento, se identifican los momentos más tempranos y más tardíos registrados. Podemos calcular el tiempo transcurrido restando el momento más temprano del momento más tardío.

Otra opción en el menú contextual de "Cálculo automático" abre el cuadro de diálogo de "Formato de valores", lo que permite acceder rápidamente a una variedad de formatos adecuados para el tipo de datos del resultado del cálculo.

También podríamos utilizar las funciones min() y max() para seleccionar las horas de salida y llegada, pero los datos almacenados por el dispositivo GPS están en hora GMT, mientras que esta excursión tuvo lugar en la hora estándar del este de los Estados Unidos, donde la hora local es cinco horas antes.
Afortunadamente, XPath incluye una función especial llamada adjust-dateTime-to-timezone() que permite ajustar un valor de fecha y hora a una zona horaria diferente. Aquí está la expresión que utilizamos para ajustar la hora de salida:
ajustarFechaHoraAZonaHoraria( mínimo( $XML/n1:gpx/n1:trk/n1:trkseg/n1:trkpt/n1:time ), xs:dayTimeDuration('-PT5H') )
Tenga en cuenta que debemos ingresar la duración del ajuste como una cadena de texto y declararla explícitamente como un tipo de dato "dayTimeDuration".
Podemos utilizar el cuadro de diálogo de formato de valores para mostrar las horas de salida y llegada de una manera familiar:

Hemos implementado una mejora adicional en XPath para nuestro informe XML de GPS. En nuestra publicación anterior, describimos una técnica que utiliza un proyecto de StyleVision y nombres de archivo estandarizados para generar informes para múltiples archivos de datos sin modificar el archivo SPS. También puede utilizar la utilidad StyleVisionBatch, o incluso la API de StyleVision, para automatizar el procesamiento a través de las hojas de estilo SPS y crear informes en una variedad de formatos.
Nombres de los archivos de gráficos
Cuando generamos y guardamos la salida en formato HTML, el informe principal es un documento HTML y los gráficos son archivos de imagen separados. Podemos especificar el nombre del archivo del gráfico en el cuadro de diálogo de configuración de gráficos, pero si queremos guardar varios informes HTML en la misma carpeta en un servidor, necesitaremos nombres de archivo diferentes para cada gráfico. De lo contrario, cada nuevo gráfico utilizará el nombre predeterminado, sobrescribiendo la versión anterior.

La opción "Nombre de archivo personalizado" nos permite utilizar una expresión XPath para especificar un nombre de archivo de imagen diferente. Una solución sencilla podría ser generar un número aleatorio, convertirlo a una cadena de texto e insertar esa cadena en el nombre del archivo.
Pero no podemos hacerlo porque XPath no incluye una función "random()".
En lugar de eso, podemos generar una cadena pseudoaleatoria combinando dos funciones adicionales de XPath relacionadas con el tiempo. La función "seconds-from-time()" devuelve los segundos y milisegundos de cualquier valor, y la función "current-time()" devuelve la hora actual del sistema en horas, minutos, segundos y milisegundos.
Podemos incluir la función "segundos desde la hora (hora actual)" en una expresión XPath dentro del diálogo de configuración del archivo de imagen para generar un nombre de archivo basado en el segundo y el milisegundo exactos en que se genera el resultado HTML. La expresión XPath completa para generar la cadena del nombre de archivo es la siguiente:

Cuando guardamos el código HTML generado, StyleVision muestra todos los archivos adicionales que se han creado junto con el documento principal

Nombres de los archivos de imagen del mapa de la ruta
Cuando creamos múltiples páginas HTML para informes de viajes, también necesitaremos referenciar una imagen de mapa de ruta diferente para cada viaje. XPath también puede ayudar con esta tarea. Inicialmente, insertamos el mapa utilizando una URL con un nombre de archivo específico, pero en lugar de eso, podemos definir un nombre de archivo de imagen como un parámetro que se proporcionará cuando se procese la hoja de estilo.
La opción de menú "Editar / Parámetros de la hoja de estilo" abre el cuadro de diálogo "Editar parámetros", que proporciona acceso centralizado a todos los parámetros de la hoja de estilo. En la captura de pantalla que se muestra a continuación, hemos añadido un parámetro llamado "routeMapFile" y hemos definido su valor predeterminado.

Ahora podemos utilizar este parámetro para asignar el archivo de la tabla de enrutamiento. El cuadro de diálogo "Editar imagen" incluye cuatro opciones para definir la ubicación de una imagen. En la captura de pantalla que se muestra a continuación, hemos seleccionado las pestañas "Estática" y "Dinámica" para especificar una ruta de carpeta concreta y un nombre de archivo dinámico.

Podemos proporcionar un nuevo valor para el parámetro routeMapFile cuando generamos un informe en cualquier formato de salida. Si no proporcionamos un nuevo valor, se utilizará el valor predeterminado definido en el cuadro de diálogo "Editar parámetros".
Ahora podemos escribir una línea de comandos para ejecutar StyleVision en modo por lotes, utilizando una imagen de mapa de rutas diferente:

También podríamos utilizar un parámetro para asignar el color de fondo del gráfico. Otra opción de línea de comandos puede incluso seleccionar un nuevo archivo XML de entrada para reemplazar el archivo XML de trabajo definido en la hoja de estilo. Los parámetros y las opciones de línea de comandos hacen de StyleVisionBatch una excelente herramienta para utilizar la misma hoja de estilo para generar informes para muchos conjuntos de datos diferentes.
Aquí está la vista previa en HTML de los datos del viaje de escalada en hielo, con todas nuestras mejoras de XPath aplicadas:

Para diseñar sus propios informes a partir de archivos XML de GPS, o para lograr de manera eficiente cualquier otro requisito de informes XML, formularios electrónicos o publicación en múltiples canales, haga clic aquí para obtener una prueba gratuita de Altova StyleVision.