Grupowanie XSLT/Muenchian
Grupowanie Muenchian (lub metoda Muenchian , nazwana na cześć Steve'a Muencha) to algorytm grupowania danych używany w XSL Transformations v1 , który identyfikuje klucze w wynikach, a następnie wysyła zapytanie do wszystkich węzłów z tym kluczem. Poprawia to tradycyjną alternatywę grupowania, w której każdy węzeł jest porównywany z poprzednimi (lub kolejnymi) węzłami w celu ustalenia, czy klucz jest unikalny (jeśli tak, oznaczałoby to nową grupę). W obu przypadkach klucz może przybrać postać atrybutu, elementu lub wyliczonej wartości.
Unikalny identyfikator jest nazywany kluczem ze względu na użycie funkcji „klucz” do identyfikacji i śledzenia zmiennej grupowej.
Technika ta nie jest konieczna w XSLT 2.0+, który wprowadza nowy tag for-each-group
.
Ogólny aspekt transformacji
Metoda wykorzystywała zdolność XSLT do indeksowania dokumentów za pomocą klucza. Sztuczka polega na wykorzystaniu indeksu do skutecznego ustalenia zestawu unikalnych kluczy grupowania, a następnie użyciu tego zestawu do przetworzenia wszystkich węzłów w grupie:
<xsl:key name= "products-by-category" match= "product" use= "@category" /> <xsl:template match= "/" > <xsl:for-each select= "//produkt[liczba (. | key('products-by-category', @category)[1]) = 1]" > <xsl: nazwa- zmiennej = "bieżący-klucz-grupowania" select= "@kategoria" /> <xsl:zmienna nazwa = "aktualna grupa"
select= "key('products-by-category', $current-grouping-key)" /> <xsl:for-each select= "$current-group" > <!-- przetwarzanie elementów w grupie --> <!-- tutaj również możesz użyć xsl:sort, jeśli to konieczne --> </xsl:for-each> </xsl:for-each> </xsl:template>
Chociaż metoda monachijska będzie nadal działać w wersji 2.0, preferowana jest metoda dla każdej grupy
, ponieważ prawdopodobnie będzie równie wydajna, a prawdopodobnie bardziej. Metodę monachijską można stosować tylko do grupowania opartego na wartościach.