---
title: "XPath migliora i report XML"
date: "2012-04-17"
categories: 
  - "xpath"
tags: 
  - "charts"
  - "localization"
  - "stylevision"
  - "xpath"
description: Scoprite come migliorare i report XML GPS utilizzando XPath in Altova StyleVision. Imparate a calcolare valori, formattare le date e personalizzare i grafici in modo efficace.
---
Status: #blog

Tags:  #charts #localization #stylevision #xpath

Categories: [xpath+xquery](/blog/it/category/xpathxquery.md)
# XPath migliora i report XML

Nel nostro precedente articolo, intitolato "[Creazione di report eleganti per dati XML GPS](https://www.altova.com/blog/2012/04/creating-elegant-reports-for-gps-xml.html)", abbiamo utilizzato un'espressione XPath per selezionare nodi da un documento XML al fine di creare un grafico a linee che rappresentasse l'altitudine. È possibile utilizzare XPath anche per calcolare valori. [Altova StyleVision](https://www.altova.com/it/stylevision.html) offre un supporto completo per XPath, e possiamo scrivere espressioni XPath per aggiungere informazioni interessanti ai nostri report XML GPS. Ad esempio, possiamo elaborare i dati di altitudine memorizzati dal dispositivo GPS in metri per creare un grafico che mostri l'altitudine in piedi rispetto al livello del mare.

![Grafico a linee della linea Altova StyleVision](https://lh5.ggpht.com/-gSbmsmf1ZRY/T6FNDIQzqkI/AAAAAAAAAyg/1u_NWXO1IlM/clip_image001%25255B1%25255D.png?imgmax=800 "Altova StyleVision line chart")

<!--more-->

La formula di conversione da metri a piedi è: (metri x 3,2808399) = piedi. Possiamo applicare questo calcolo nella finestra di configurazione del grafico:

Ora, il grafico verrà creato utilizzando i risultati del calcolo effettuato sui dati estratti dal file di origine.

**Funzioni temporali XPath**

Potreste aver notato che il nostro grafico non include una definizione della scala dell'asse X. Abbiamo deliberatamente eliminato le tacche e i valori sull'asse X perché i dispositivi GPS memorizzano informazioni sui punti del percorso ogni pochi secondi. Il file relativo all'escursione di alpinismo su ghiaccio contiene più di 1.800 punti dati relativi all'altitudine, e l'enorme quantità di dati ha creato una serie di tacche che si sono fuse in una linea continua! Non c'era nemmeno spazio sufficiente per inserire i valori testuali.

Ma non sarebbe interessante sapere quanto è durata l'escursione? Possiamo inserire questa informazione nel nostro rapporto, sfruttando la funzione di calcolo automatico di StyleVision. La sezione del layout mostrata qui sotto illustra tre elementi di calcolo automatico aggiunti al rapporto tramite l'opzione "Inserisci / Calcolo automatico / Valore" e arricchiti con testo descrittivo.

![Elementi StyleVision AutoCalc](https://lh5.ggpht.com/-uXZIbSXcnbw/T41tCgrdCqI/AAAAAAAAAys/4EJATOgpRFI/clip_image003%25255B1%25255D.png?imgmax=800 "StyleVision AutoCalc elements")

Cliccando con il tasto destro su qualsiasi elemento di calcolo automatico, si apre un menu che fornisce l'accesso alla finestra di dialogo "Modifica XPath", illustrata di seguito in versione ridotta. È possibile digitare direttamente un'espressione XPath nella finestra, oppure costruirne una selezionando gli elementi, gli operatori e le funzioni dalle rispettive liste.

Per calcolare il tempo trascorso durante il viaggio, possiamo utilizzare le funzioni XPath `time` e `min(anyAtomicType)` insieme a espressioni XPath per `time` per ogni punto di tracciamento, è possibile individuare l'ora di inizio e l'ora di fine registrate. Sottraendo l'ora di inizio dall'ora di fine, si può calcolare la durata dell'intero tracciamento.

![Finestra di dialogo per la modifica delle espressioni XPath in StyleVision](https://lh4.ggpht.com/-6far6GBn_X0/T41tDmS8KpI/AAAAAAAAAyw/y3OtXvCrqRc/clip_image004%25255B1%25255D.png?imgmax=800 "StyleVision XPath edit dialog")

Un'altra opzione nel menu contestuale "Calcolo automatico" apre la finestra di dialogo "Formattazione del valore", che consente di accedere rapidamente a una varietà di formati adatti al tipo di dati del risultato del calcolo.

![Finestra di dialogo "Formattazione avanzata" di StyleVision per i risultati di AutoCalc](https://lh6.ggpht.com/-kH8H4z9bW6Q/T41tEVMLc7I/AAAAAAAAAy0/NaG1nrLMQZY/clip_image005%25255B1%25255D.png?imgmax=800 "StyleVision Value Formatting dialog for AutoCalc result")

Potremmo anche utilizzare le funzioni min() e max() per selezionare gli orari di partenza e arrivo, ma i dati memorizzati dal dispositivo GPS sono in ora GMT, mentre questa escursione si è svolta nell'Eastern Standard Time negli Stati Uniti, dove l'ora locale è cinque ore prima.

Fortunatamente, XPath include una funzione speciale, adjust-dateTime-to-timezone(), che permette di adattare un valore dateTime a un fuso orario diverso. Ecco l'espressione che abbiamo utilizzato per adattare l'orario di partenza:

**regolaDataOraFusoOrario(minimo( $XML/n1:gpx/n1:trk/n1:trkseg/n1:trkpt/n1:time ), xs:dayTimeDuration('-PT5H') )**

Si prega di notare che dobbiamo inserire la durata dell'adattamento come una stringa e dichiararla esplicitamente come un tipo di dati "dayTimeDuration".

Possiamo utilizzare la finestra di dialogo "Formattazione valori" per visualizzare gli orari di partenza e di arrivo in un formato familiare:

![Formattazione del risultato di una data e ora](https://lh5.ggpht.com/-iRof_1PEOr0/T41tFgbR_oI/AAAAAAAAAy4/0x1-QSpyFIE/clip_image006%25255B1%25255D.png?imgmax=800 "Value Formatting a dateTime result")

Abbiamo un ulteriore miglioramento per il nostro report XML GPS, relativo all'utilizzo di XPath. Nel nostro [articolo precedente,](https://www.altova.com/blog/2012/04/creating-elegant-reports-for-gps-xml.html) abbiamo descritto una tecnica che utilizza un progetto StyleVision e nomi di file standardizzati per generare report per più file di dati, senza modificare il file SPS. È inoltre possibile utilizzare l'utility StyleVisionBatch, o persino l'API StyleVision, per automatizzare l'elaborazione tramite i fogli di stile SPS e creare report in diversi formati.

**Nomi dei file delle tabelle**

Quando generiamo e salviamo l'output in formato HTML, il rapporto principale è un documento HTML e i grafici sono file immagine separati. Possiamo specificare il nome del file del grafico nella finestra di dialogo "Impostazioni grafici", ma se vogliamo salvare più rapporti HTML nella stessa cartella su un server, avremo bisogno di nomi di file diversi per ogni grafico. Altrimenti, ogni nuovo grafico utilizzerà il nome predefinito, sovrascrivendo la versione precedente.

![Finestra di dialogo per la scelta del nome del file del grafico StyleVision](https://lh6.ggpht.com/-AgmhHehVq4Q/T41tGeEH85I/AAAAAAAAAy8/58M0UkyBBgs/clip_image007%25255B1%25255D.png?imgmax=800 "StyleVision chart file name dialog")

L'opzione "Nome file personalizzato" ci permette di utilizzare un'espressione XPath per specificare un nome file immagine diverso. Una soluzione semplice potrebbe essere quella di generare un numero casuale, convertirlo in una stringa e inserire questa stringa nel nome del file.

Ma non possiamo farlo, perché XPath non include una funzione "random()".

Invece, possiamo generare una stringa pseudo-casuale combinando due funzioni XPath aggiuntive relative al tempo. La funzione `seconds-from-time()` restituisce i secondi e i millisecondi da qualsiasi valore, mentre la funzione `current-time()` restituisce l'ora corrente del sistema in ore, minuti, secondi e millisecondi.

È possibile inserire un valore "secondi dal tempo" (calcolato a partire dall'ora corrente) in un'espressione XPath all'interno della finestra di dialogo delle impostazioni del file immagine, per generare un nome file basato sul secondo e sul millisecondo esatti in cui viene prodotto il risultato HTML. L'espressione XPath completa per generare la stringa del nome file è la seguente:

![Nome del file del grafico personalizzato basato su un'espressione XPath](https://lh3.ggpht.com/-eKYGKDgTE3Y/T41tG5rSf_I/AAAAAAAAAzA/mfzA2xHPfCs/clip_image008%25255B1%25255D.png?imgmax=800 "Custom chart file name based on an XPath expression")

Quando salviamo l'output HTML generato, StyleVision segnala tutti i file aggiuntivi creati insieme al documento principale

![Nome file generato in modo pseudo-casuale, basato su un'espressione XPath](https://lh5.ggpht.com/-lFtknXRCRx0/T41tHYy-d4I/AAAAAAAAAzE/rXLms4KlLFE/clip_image009%25255B1%25255D.png?imgmax=800 "Pseudo-random file name generated based on XPath expression")

**Nomi dei file delle immagini delle mappe dei percorsi**

Quando creiamo più pagine HTML per i report di viaggio, dovremo anche fare riferimento a un'immagine diversa della mappa del percorso per ogni viaggio. XPath può essere utile anche per questo compito. Inizialmente, abbiamo inserito la mappa utilizzando un URL con un nome file specifico, ma invece possiamo definire il nome del file dell'immagine come un parametro da fornire quando il foglio di stile viene elaborato.

L'opzione del menu "Modifica / Parametri del foglio di stile" apre la finestra di dialogo "Modifica parametri", che fornisce un accesso centralizzato a tutti i parametri del foglio di stile. Nello screenshot qui sotto, abbiamo aggiunto un parametro chiamato "routeMapFile" e ne abbiamo definito il valore predefinito.

![Finestra delle impostazioni di stile di StyleVision](https://lh4.ggpht.com/-RNgIJCRUynk/T41tJ9qjtbI/AAAAAAAAAzI/xRMtQEP7KUs/clip_image010%25255B1%25255D.png?imgmax=800 "StyleVision Edit Parameters window")

Ora possiamo utilizzare questo parametro per specificare il file della mappa delle rotte. La finestra di dialogo "Modifica immagine" include quattro opzioni per definire la posizione di un'immagine. Nello screenshot qui sotto, abbiamo selezionato le schede "Statico" e "Dinamico" per un percorso di cartella specifico e un nome file dinamico.

![Assegnare un parametro al nome di un file immagine](https://lh4.ggpht.com/-Fpvq94Ozbhw/T41tKTSpdvI/AAAAAAAAAzM/4niINvq5I7U/clip_image011%25255B1%25255D.png?imgmax=800 "Assigning a parameter to an image file name")

Possiamo fornire un nuovo valore per il parametro routeMapFile quando generiamo un report in qualsiasi formato di output. Se non forniamo un nuovo valore, verrà utilizzato il valore predefinito definito nella finestra di dialogo "Modifica parametri".

Ora possiamo scrivere un comando da riga per eseguire StyleVision in modalità batch, utilizzando un'immagine di mappa di percorso diversa:

![Riga di comando per eseguire StyleVision in modalità batch con un parametro](https://lh6.ggpht.com/-9pYl5bC12Bs/T41tLKn4VnI/AAAAAAAAAzQ/ByarXQ-ZdcE/clip_image012%25255B1%25255D.png?imgmax=800 "Command line to execute StyleVision in batch mode with a parameter")

Potremmo anche utilizzare un parametro per definire lo sfondo del grafico. Un'altra opzione da riga di comando può persino selezionare un nuovo file XML di input per sostituire il file XML attivo definito nel foglio di stile. I parametri e le opzioni da riga di comando rendono StyleVisionBatch un ottimo strumento per utilizzare lo stesso foglio di stile per generare report per diversi set di dati.

Ecco l'anteprima HTML dei dati relativi al viaggio di arrampicata su ghiaccio, con tutte le nostre ottimizzazioni XPath applicate:

![Anteprima HTML del rapporto, con miglioramenti basati su XPath](https://lh5.ggpht.com/--MSr3CqE-Uo/T41tLuthPCI/AAAAAAAAAzU/RyC_Ff9hN6M/clip_image014%25255B1%25255D.jpg?imgmax=800 "HTML preview of the report with XPath enhancements")

Per creare report personalizzati a partire da file XML GPS, oppure per gestire in modo efficiente qualsiasi altra esigenza di reportistica XML, moduli elettronici o pubblicazione multicanale, [clicchi qui per provare gratuitamente Altova StyleVision](https://www.altova.com/it/download/stylevision/db_xslt_stylesheet_designer_enterprise.html).
