XSLT/Muenchian группировка

Алгоритм группировки данных, используемых в XSL-преобразованиях
Основные элементы и последовательность процесса XSLT

Группировка Мюнхяна (или метод Мюнхяна , названный в честь Стива Мюнха) — это алгоритм группировки данных , используемый в XSL Transformations v1, который идентифицирует ключи в результатах, а затем запрашивает все узлы с этим ключом. Это улучшает традиционную альтернативу группировки, при которой каждый узел проверяется относительно предыдущих (или последующих) узлов, чтобы определить, является ли ключ уникальным (если это так, это будет указывать на новую группу). [1] В обоих случаях ключ может принимать форму атрибута, элемента или вычисляемого значения.

Уникальный идентификатор называется ключом из-за использования функции «ключ» для идентификации и отслеживания групповой переменной.

Этот метод не нужен в XSLT 2.0+, где представлен новый for-each-groupтег.

Общий аспект преобразования

Метод использовал возможность XSLT индексировать документы с помощью ключа. Хитрость заключается в использовании индекса для эффективного определения набора уникальных группирующих ключей, а затем в использовании этого набора для обработки всех узлов в группе: [2]

<xsl:key name= "products-by-category" match= "product" use= "@category" />   <xsl:template match= "/" >  <xsl:for-each select= "//product[count(. | key('products-by-category', @category)[1]) = 1]" > <xsl:variable name= "current-grouping-key" select= "@category" /> <xsl:variable name= "current-group" select= "key('products-by-category',  $current-grouping-key)" /> <xsl:for-each select= "$current-group" > <!-- обработка элементов в группе --> <!-- при необходимости здесь также можно использовать xsl:sort --> </xsl:for-each> </xsl:for-each>             </xsl:шаблон>

Хотя метод Мюнхена продолжит работать в версии 2.0, for-each-groupон предпочтительнее, поскольку он, вероятно, будет столь же эффективен, а возможно, и более. Метод Мюнхена может использоваться только для группировки на основе ценности.

Ссылки

  1. ^ Группировка с использованием метода Мюнхена, Джени Теннисон
  2. ^ «Рецепт 6.2. Предпочтение метода for-each-group мюнховскому методу группировки».
Взято с "https://en.wikipedia.org/w/index.php?title=XSLT/Muenchian_grouping&oldid=1220863837"