XPath améliore les rapports XML

Dans notre précédent article sur.. Création de rapports élégants à partir de données XML GPS Nous avons utilisé une expression XPath pour sélectionner des nœuds dans un document XML, afin de créer un graphique de courbes représentant des altitudes. Vous pouvez également utiliser XPath pour calculer des valeurs. Altova StyleVision Il offre un support important pour XPath, et nous pouvons utiliser des expressions XPath pour ajouter des informations intéressantes à nos rapports XML GPS. Par exemple, nous pouvons traiter les données d'altitude stockées par l'appareil GPS, exprimées en mètres, pour créer un graphique affichant l'altitude en pieds au-dessus du niveau de la mer.

La formule de conversion des mètres en pieds est la suivante : (mètres x 3,2808399) = pieds. Nous pouvons appliquer ce calcul dans la fenêtre de configuration du graphique :

Maintenant, le graphique sera créé à partir des résultats du calcul effectué sur les données extraites du fichier source.

Fonctions temporelles XPath

Vous avez peut-être remarqué que notre graphique ne comporte pas de définition de l'échelle de l'axe des abscisses. Nous avons intentionnellement supprimé les graduations et les valeurs de l'axe des abscisses, car les appareils GPS enregistrent les informations de position toutes les quelques secondes. Le fichier correspondant à la randonnée en glace contient plus de 1 800 points de données d'altitude, et le volume important de ces données a créé une série de graduations qui se sont fusionnées en une ligne continue ! Il n'y avait pas assez de place non plus pour afficher les valeurs textuellement.

Mais ne serait-il pas intéressant de savoir combien de temps a duré la randonnée ? Nous pouvons inclure cette information dans notre rapport en utilisant la fonction de calcul automatique de StyleVision. La partie du modèle ci-dessous illustre trois éléments de calcul automatique ajoutés au rapport via le menu "Insérer / Calcul automatique / Valeur", et enrichis de texte descriptif.

Un clic droit sur n'importe quel élément de calcul automatique ouvre un menu qui donne accès à la boîte de dialogue "Modifier l'expression XPath", illustrée ci-dessous en format réduit. Vous pouvez saisir directement une expression XPath dans la fenêtre, ou en construire une en sélectionnant des éléments, des opérateurs et des fonctions dans les listes correspondantes.

Pour calculer la durée du trajet, nous pouvons utiliser les fonctions XPath time et min(anyAtomicType) en combinaison avec des expressions XPath pour time pour chaque point de suivi, nous devons identifier les moments les plus anciens et les plus récents enregistrés. Nous pouvons soustraire le moment le plus ancien du moment le plus récent pour calculer la durée écoulée.

Une autre option du menu contextuel "Calcul automatique" ouvre la boîte de dialogue "Formatage des valeurs", permettant d'accéder instantanément à une variété de formats adaptés au type de données du résultat du calcul.

Nous pourrions également utiliser les fonctions min() et max() pour sélectionner les heures de départ et d'arrivée, mais les données stockées par l'appareil GPS sont en heure GMT, alors que cette randonnée a eu lieu en heure normale de l'Est aux États-Unis, où l'heure locale est cinq heures plus tôt.

Heureusement, XPath inclut une fonction spéciale, adjust-dateTime-to-timezone(), qui permet d'ajuster une valeur de type date et heure à un fuseau horaire différent. Voici l'expression que nous avons utilisée pour ajuster l'heure de départ :

ajusterDateHeureAuFuseauHoraire(min($XML/n1:gpx/n1:trk/n1:trkseg/n1:trkpt/n1:time), xs:dayTimeDuration('-PT5H'))

Veuillez noter que nous devons saisir la durée de l'ajustement sous forme de chaîne de caractères et la déclarer explicitement comme étant un type de données "dayTimeDuration".

Nous pouvons utiliser la boîte de dialogue de formatage des valeurs pour afficher les heures de départ et d'arrivée dans un format familier :

Nous avons une nouvelle amélioration XPath pour notre rapport XML GPS. Dans notre publication précédente, nous avons décrit une technique utilisant un projet StyleVision et des noms de fichiers standardisés pour générer des rapports pour plusieurs fichiers de données, sans modifier le fichier SPS. Vous pouvez également utiliser l'utilitaire StyleVisionBatch, ou même l'API StyleVision, pour automatiser le traitement via les feuilles de style SPS et créer des rapports dans différents formats.

Noms des fichiers de graphiques

Lorsque nous générons et enregistrons une sortie HTML, le rapport principal est un document HTML et les graphiques sont des fichiers image distincts. Nous pouvons spécifier le nom du fichier du graphique dans la fenêtre de paramètres des graphiques, mais si nous voulons enregistrer plusieurs rapports HTML dans le même dossier sur un serveur, nous aurons besoin de noms de fichiers différents pour chaque graphique. Sinon, chaque nouveau graphique utilisera le nom par défaut, écrasant ainsi la version précédente.

L'option "Nom de fichier personnalisé" nous permet d'utiliser une expression XPath pour spécifier un nom de fichier image différent. Une solution simple pourrait consister à générer un nombre aléatoire, à le convertir en chaîne de caractères, et à insérer cette chaîne dans le nom du fichier.

Mais nous ne pouvons pas faire cela, car XPath ne dispose pas d'une fonction "aléatoire" (random()).

Au lieu de cela, nous pouvons générer une chaîne pseudo-aléatoire en combinant deux fonctions XPath supplémentaires liées au temps. La fonction seconds-from-time() renvoie les secondes et les millisecondes à partir de n'importe quelle valeur, et la fonction current-time() renvoie l'heure système actuelle en heures, minutes, secondes et millisecondes.

Nous pouvons intégrer une valeur représentant le nombre de secondes écoulées depuis une heure de référence (calculée à partir de l'heure actuelle) dans une expression XPath, dans la fenêtre de configuration des fichiers image, afin de générer un nom de fichier basé sur la seconde et la milliseconde exacts à laquelle le résultat HTML est produit. L'expression XPath complète pour générer la chaîne de caractères représentant le nom de fichier ressemble à ceci :

Lorsque nous enregistrons la sortie HTML générée, StyleVision affiche tous les fichiers supplémentaires créés avec le document principal

Noms des fichiers d'images des cartes de route

Lorsque nous créons plusieurs pages HTML pour des récits de voyage, nous devons également référencer une image de carte différente pour chaque voyage. XPath peut également aider pour cette tâche. Initialement, nous avons inséré la carte en utilisant une URL spécifique contenant le nom du fichier, mais nous pouvons également définir le nom du fichier de l'image comme un paramètre qui sera fourni lors du traitement de la feuille de style.

L'option de menu "Modifier / Paramètres de la feuille de style" ouvre la boîte de dialogue "Modifier les paramètres", qui permet d'accéder de manière centralisée à tous les paramètres de la feuille de style. Dans la capture d'écran ci-dessous, nous avons ajouté un paramètre nommé "routeMapFile" et défini sa valeur par défaut.

Maintenant, nous pouvons utiliser ce paramètre pour spécifier le fichier de routage. La boîte de dialogue "Modifier l'image" propose quatre options pour définir l'emplacement d'une image. Dans la capture d'écran ci-dessous, nous avons choisi les onglets "Statique" et "Dynamique" pour un chemin de dossier spécifique et un nom de fichier dynamique.

Nous pouvons spécifier une nouvelle valeur pour le paramètre routeMapFile lorsque nous générons un rapport dans n'importe quel format de sortie. Si nous ne spécifions pas de nouvelle valeur, la valeur par défaut définie dans la boîte de dialogue "Modifier les paramètres" sera utilisée.

Maintenant, nous pouvons écrire une ligne de commande pour exécuter StyleVision en mode batch avec une image de carte de routage différente :

Nous pourrions également utiliser un paramètre pour définir la couleur de fond du graphique. Une autre option en ligne de commande permet même de sélectionner un nouveau fichier XML d'entrée pour remplacer le fichier XML utilisé par défaut, tel que défini dans la feuille de style. Les paramètres et les options en ligne de commande font de StyleVisionBatch un excellent outil pour utiliser la même feuille de style afin de générer des rapports pour de nombreux ensembles de données différents.

Voici un aperçu en HTML des données relatives au voyage d'escalade sur glace, avec toutes nos améliorations XPath appliquées :

Pour concevoir vos propres rapports à partir de fichiers XML GPS, ou pour répondre de manière élégante à tout autre besoin de reporting XML, de formulaires électroniques ou de publication multicanal, cliquez ici pour essayer gratuitement Altova StyleVision.