---
title: "XPath zwiększa możliwości raportów XML"
date: "2012-04-17"
categories: 
  - "xpath"
tags: 
  - "charts"
  - "localization"
  - "stylevision"
  - "xpath"
description: Odkryj, jak ulepszyć raporty GPS w formacie XML, wykorzystując XPath w programie Altova StyleVision. Naucz się obliczać wartości, formatować daty i efektywnie dostosowywać wykresy.
---
Status: #blog

Tags:  #charts #localization #stylevision #xpath

Categories: [xpath+xquery](/blog/pl/category/xpathxquery.md)
# XPath zwiększa możliwości raportów XML

W naszym poprzednim artykule, zatytułowanym "[Tworzenie eleganckich raportów dla danych GPS w formacie XML](https://www.altova.com/blog/2012/04/creating-elegant-reports-for-gps-xml.html)", wykorzystaliśmy wyrażenie XPath do wyboru elementów z dokumentu XML, które posłużyły do stworzenia wykresu przedstawiającego zmiany wysokości. Można również używać XPath do obliczania wartości. [Altova StyleVision](https://www.altova.com/pl/stylevision.html) oferuje rozbudowane wsparcie dla XPath, dzięki czemu możemy tworzyć wyrażenia XPath, które pozwolą nam dodać interesujące informacje do naszych raportów GPS w formacie XML. Na przykład, możemy przetworzyć dane dotyczące wysokości, przechowywane przez urządzenie GPS w metrach, aby zamiast tego wyświetlić wykres przedstawiający wysokość nad poziomem morza w stopach.

![Wykres liniowy z linii Altova StyleVision](https://lh5.ggpht.com/-gSbmsmf1ZRY/T6FNDIQzqkI/AAAAAAAAAyg/1u_NWXO1IlM/clip_image001%25255B1%25255D.png?imgmax=800 "Altova StyleVision line chart")

<!--more-->

Wzór przeliczeniowy z metrów na stopy to: (metry x 3,2808399) = stopy. Możemy zastosować to obliczenie w oknie konfiguracji wykresu:

Teraz wykres zostanie wygenerowany na podstawie wyników obliczeń przeprowadzonych na danych pobranych z pliku źródłowego.

**Funkcje czasu XPath**

Może zauważyliście, że nasz wykres nie zawiera definicji skali osi X. Celowo usunęliśmy oznaczenia i wartości na osi X, ponieważ urządzenia GPS zapisują informacje o punktach trasy co kilka sekund. Plik dotyczący wędrówki po lodzie zawiera ponad 1800 punktów danych dotyczących wysokości, a ogromna ilość tych punktów spowodowała, że oznaczenia na osi połączyły się w jedną, ciągłą linię! Nie było również wystarczająco dużo miejsca, aby umieścić tekst z wartościami.

Ale nie byłoby interesujące, gdybyśmy wiedzieli, ile czasu zajęła ta wędrówka? Możemy dodać tę informację do naszego raportu, wykorzystując funkcję automatycznych obliczeń StyleVision. Fragment projektu poniżej pokazuje trzy elementy automatycznych obliczeń, które zostały dodane do raportu za pomocą opcji "Wstaw / Automatyczne obliczenia / Wartość" i uzupełnione opisowym tekstem.

![Elementy StyleVision AutoCalc](https://lh5.ggpht.com/-uXZIbSXcnbw/T41tCgrdCqI/AAAAAAAAAys/4EJATOgpRFI/clip_image003%25255B1%25255D.png?imgmax=800 "StyleVision AutoCalc elements")

Kliknięcie prawym przyciskiem myszy na dowolnym elemencie automatycznego obliczania otwiera menu, które umożliwia dostęp do okna dialogowego "Edytuj wyrażenie XPath", przedstawionego poniżej w zmniejszonym rozmiarze. Można wpisać wyrażenie XPath bezpośrednio w oknie, lub utworzyć je, wybierając elementy z list "Elementy", "Operatory" i "Funkcje".

Aby obliczyć czas trwania podróży, możemy użyć funkcji XPath `time` i `min(anyAtomicType)` w połączeniu z wyrażeniami XPath dla `time` dla każdego punktu trasy należy znaleźć najwcześniejszy i najpóźniejszy zarejestrowany czas. Możemy odjąć najwcześniejszy czas od najpóźniejszego, aby obliczyć czas trwania trasy.

![Okno dialogowe edycji wyrażeń XPath w programie StyleVision](https://lh4.ggpht.com/-6far6GBn_X0/T41tDmS8KpI/AAAAAAAAAyw/y3OtXvCrqRc/clip_image004%25255B1%25255D.png?imgmax=800 "StyleVision XPath edit dialog")

Kolejna opcja w menu kontekstowym "Automatyczne obliczenia" otwiera okno dialogowe "Formatowanie wartości", umożliwiając szybki dostęp do różnych formatów odpowiednich dla typu danych wyniku obliczeń.

![Okno dialogowe "Formatowanie wartości" w programie StyleVision dla wyników programu AutoCalc](https://lh6.ggpht.com/-kH8H4z9bW6Q/T41tEVMLc7I/AAAAAAAAAy0/NaG1nrLMQZY/clip_image005%25255B1%25255D.png?imgmax=800 "StyleVision Value Formatting dialog for AutoCalc result")

Możemy również użyć funkcji min() i max() do wyboru godzin odlotu i przylotu, ale dane przechowywane przez urządzenie GPS są w formacie czasu GMT, a ta wędrówka odbyła się w strefie czasu Eastern Standard Time w Stanach Zjednoczonych, gdzie lokalny czas jest o pięć godzin wcześniejszy.

Na szczęście, XPath zawiera specjalną funkcję `adjust-dateTime-to-timezone()`, która służy do dostosowania wartości daty i czasu do innej strefy czasowej. Poniżej znajduje się wyrażenie, którego użyliśmy do dostosowania godziny odlotu:

**dostosujDatęIWagęDoStrefyCzasowej(minimum( $XML/n1:gpx/n1:trk/n1:trkseg/n1:trkpt/n1:time ), xs:dayTimeDuration('-PT5H') )**

Należy pamiętać, że czas trwania korekty należy wprowadzić jako ciąg znaków i wyraźnie zadeklarować go jako typ danych "dayTimeDuration".

Możemy użyć okna dialogowego formatowania wartości, aby wyświetlać godziny odlotu i przylotu w sposób, który jest nam dobrze znany:

![Formatowanie wartości daty i czasu](https://lh5.ggpht.com/-iRof_1PEOr0/T41tFgbR_oI/AAAAAAAAAy4/0x1-QSpyFIE/clip_image006%25255B1%25255D.png?imgmax=800 "Value Formatting a dateTime result")

Mamy kolejne ulepszenie XPath dla naszego raportu XML dotyczącego GPS. W naszym [wcześniejszy wpis,](https://www.altova.com/blog/2012/04/creating-elegant-reports-for-gps-xml.html) Opisaliśmy technikę wykorzystującą projekt StyleVision oraz ustandaryzowane nazwy plików, aby generować raporty dla wielu plików danych bez modyfikowania pliku SPS. Można również użyć narzędzia StyleVisionBatch, a nawet interfejsu API StyleVision, aby zautomatyzować proces przetwarzania za pomocą arkuszy stylów SPS i tworzyć raporty w różnych formatach.

**Nazwy plików zawierających wykresy**

Podczas generowania i zapisywania wyników w formacie HTML, główny raport jest dokumentem HTML, a wykresy są zapisywane jako oddzielne pliki graficzne. Możemy określić nazwę pliku z wykresami w oknie dialogowym "Ustawienia wykresów", ale jeśli chcemy zapisać wiele raportów HTML w tej samej lokalizacji na serwerze, będziemy potrzebować różnych nazw plików dla każdego wykresu. W przeciwnym razie, każdy nowy wykres będzie używał domyślnej nazwy, nadpisując poprzednią wersję.

![Okno dialogowe wyboru nazwy pliku wykresu StyleVision](https://lh6.ggpht.com/-AgmhHehVq4Q/T41tGeEH85I/AAAAAAAAAy8/58M0UkyBBgs/clip_image007%25255B1%25255D.png?imgmax=800 "StyleVision chart file name dialog")

Opcja "Nazwa pliku" umożliwia użycie wyrażenia XPath do określenia innej nazwy pliku obrazu. Jednym prostym rozwiązaniem może być wygenerowanie losowej liczby, przekształcenie jej na ciąg znaków i wstawienie tego ciągu do nazwy pliku.

Ale nie możemy tego zrobić, ponieważ funkcja XPath nie zawiera funkcji "random()".

Zamiast tego, możemy wygenerować pseudolosowy ciąg znaków, łącząc dwie dodatkowe funkcje XPath związane z czasem. Funkcja `seconds-from-time()` zwraca sekundy i milisekundy z dowolnej wartości, a funkcja `current-time()` zwraca aktualną godzinę systemową w formacie: godziny, minuty, sekundy i milisekundy.

Możemy wstawić do wyrażenia XPath w oknie ustawień pliku graficznego wartość "sekundy od czasu" (obliczoną na podstawie aktualnego czasu), aby utworzyć nazwę pliku w oparciu o dokładną sekundę i milisekundę, w której wygenerowano wynik HTML. Pełne wyrażenie XPath, które generuje ciąg znaków nazwy pliku, wygląda następująco:

![Nazwa pliku wykresu generowana na podstawie wyrażenia 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")

Po zapisaniu wygenerowanego kodu HTML, program StyleVision wyświetla listę wszystkich dodatkowych plików utworzonych wraz z głównym dokumentem

![Nazwa pliku generowana losowo, oparta na wyrażeniu 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")

**Nazwy plików obrazów map tras**

Kiedy tworzymy wiele stron HTML z relacjami z podróży, będziemy również musieli odwoływać się do różnych obrazów map tras dla każdej podróży. XPath może również pomóc w tym zadaniu. Początkowo wstawialiśmy mapę, używając konkretnego adresu URL pliku, ale zamiast tego możemy zdefiniować nazwę pliku obrazu jako parametr, który będzie przekazywany podczas przetwarzania arkusza stylów.

Opcja menu "Edycja / Parametry arkusza stylów" otwiera okno dialogowe "Edycja parametrów", zapewniając centralny dostęp do wszystkich parametrów arkusza stylów. Na poniższym zrzucie ekranu dodaliśmy jeden parametr o nazwie "routeMapFile" i zdefiniowaliśmy jego wartość domyślną.

![Okno ustawień edycji StyleVision](https://lh4.ggpht.com/-RNgIJCRUynk/T41tJ9qjtbI/AAAAAAAAAzI/xRMtQEP7KUs/clip_image010%25255B1%25255D.png?imgmax=800 "StyleVision Edit Parameters window")

Teraz możemy użyć tego parametru, aby przypisać plik mapy tras. Okno dialogowe "Edytuj obraz" zawiera cztery opcje, które pozwalają zdefiniować lokalizację obrazu. Na poniższym zrzucie ekranu wybraliśmy zakładki "Statyczna" i "Dynamiczna" dla określonej ścieżki folderu oraz dynamicznej nazwy pliku.

![Przypisanie parametru do nazwy pliku graficznego](https://lh4.ggpht.com/-Fpvq94Ozbhw/T41tKTSpdvI/AAAAAAAAAzM/4niINvq5I7U/clip_image011%25255B1%25255D.png?imgmax=800 "Assigning a parameter to an image file name")

Możemy podać nową wartość dla parametru routeMapFile podczas generowania raportu w dowolnym formacie. Jeśli nie podamy nowej wartości, zostanie użyta wartość domyślna zdefiniowana w oknie dialogowym "Edytuj parametry".

Teraz możemy napisać polecenie, które uruchomi StyleVision w trybie wsadowym, korzystając z innego pliku mapy ścieżek:

![Polecenie do uruchomienia programu StyleVision w trybie wsadowym z podaniem parametru](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")

Możemy również użyć parametru do ustawienia koloru tła wykresu. Dodatkowa opcja w linii poleceń pozwala nawet wybrać nowy plik XML jako źródło danych, zastępując plik XML używany domyślnie w arkuszu stylów. Parametry i opcje linii poleceń sprawiają, że StyleVisionBatch to doskonałe narzędzie do generowania raportów dla wielu różnych zestawów danych, przy użyciu tego samego arkusza stylów.

Oto podgląd HTML danych dotyczących wycieczki wspinaczkowej po lodzie, z uwzględnieniem wszystkich zastosowanych ulepszeń XPath:

![Podgląd raportu w formacie HTML z dodatkowymi funkcjami 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")

Aby tworzyć własne raporty na podstawie plików XML GPS, lub aby w elegancki sposób realizować inne potrzeby związane z raportowaniem XML, formularzami elektronicznymi lub publikacją w wielu kanałach, [kliknij tutaj, aby skorzystać z bezpłatnej wersji próbnej programu Altova StyleVision](https://www.altova.com/pl/download/stylevision/db_xslt_stylesheet_designer_enterprise.html).
