XSLT Ignorar elementos duplicados em vários arquivos
Eu recentemente fiz uma pergunta sobre como ignorar múltiplos elementos, e obtive algumas boas respostas sobre o uso do 'precedente' e do Método Muenchian. No entanto eu queria saber se é possível fazer isso em vários arquivos, com um arquivo xml de índice.
Index.xml
<?xml-stylesheet type="text/xsl" href="merge2.xsl"?>
<list>
<entry name="File1.xml" />
<entry name="File2.xml" />
</list>
Exemplo de arquivo XML
<Main>
<Records>
<Record>
<Description>A</Description>
</Record>
<Record>
<Description>A</Description>
</Record>
<Record>
<Description>B</Description>
</Record>
<Record>
<Description>C</Description>
</Record>
</Records>
<Records>
<Record>
<Description>B</Description>
</Record>
<Record>
<Description>A</Description>
</Record>
<Record>
<Description>C</Description>
</Record>
<Record>
<Description>C</Description>
</Record>
</Records>
</Main>
Merge2.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="xml" indent="yes" />
<xsl:key name="Record-by-Description" match="Record" use="Description"/>
<xsl:template match="@* | node()">
<xsl:apply-templates select="@* | node()"/>
</xsl:template>
<xsl:template match="Main">
<table>
<tr>
<th>Type</th>
<th>Count</th>
</tr>
<xsl:apply-templates select="Records"/>
</table>
</xsl:template>
<xsl:template match="Records">
<xsl:apply-templates select="Record[generate-id() = generate-id(key('Record-by-Description', Description)[1])]" mode="group"/>
</xsl:template>
<xsl:template match="Record" mode="group">
<tr>
<td>
<xsl:value-of select="Description"/>
</td>
<td>
<xsl:value-of select="count(key('Record-by-Description', Description))"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
Isso funciona bem em um arquivo e me dá o resultado desejado de produzir uma tabela, com itens exclusivos sendo exibidos apenas e a contagem sendo adicionada. No entanto, não consegui produzir o resultado desejado ao percorrer o index.xml para vários arquivos.
Eu tentei usar um modelo separado visando o index.xml e aplicar o modelo 'Principal' aos diferentes arquivos XML, e também tentei usar um for-each para percorrer os diferentes arquivos.
Antes de ser introduzido no Método Muenchian, eu estava usando for-each com 'previous' para verificar se há nós duplicados, no entanto, 'previous' parece procurar novamente pelo documento atual e não conseguiu encontrar informações sobre como usá-lo em vários documentos.
É possível, com um desses métodos, pesquisar vários documentos para o texto do elemento duplicado?
Muito obrigado por qualquer ajuda.