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", 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 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.

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.

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.

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ń.

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:

Mamy kolejne ulepszenie XPath dla naszego raportu XML dotyczącego GPS. W naszym wcześniejszy wpis, 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ę.

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:

Po zapisaniu wygenerowanego kodu HTML, program StyleVision wyświetla listę wszystkich dodatkowych plików utworzonych wraz z głównym dokumentem

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ą.

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.

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:

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:

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.