XSLT Ignoriert doppelte Elemente in mehreren Dateien

Ich habe kürzlich eine Frage zum Ignorieren mehrerer Elemente gestellt und einige gute Antworten zum Verwenden von 'Vorhergehend' und der Münchschen Methode erhalten. Allerdings habe ich mich gefragt, ob dies mit einer Index-XML-Datei über mehrere Dateien hinweg möglich ist.

Index.xml

<?xml-stylesheet type="text/xsl" href="merge2.xsl"?>
<list>
    <entry name="File1.xml" />
    <entry name="File2.xml" />
</list>

Beispiel einer XML-Datei

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

Dies funktioniert gut für eine Datei und gibt mir das gewünschte Ergebnis der Erstellung einer Tabelle, wobei nur eindeutige Elemente angezeigt und die Anzahl hinzugefügt werden. Ich konnte jedoch nicht das gewünschte Ergebnis erzielen, wenn ich die Datei index.xml für mehrere Dateien durchgesehen habe.

Ich habe versucht, eine separate Vorlage für die Datei index.xml zu verwenden und die Vorlage 'Main' auf die verschiedenen XML-Dateien anzuwenden. Außerdem habe ich versucht, mit einem For-Each-Befehl durch die verschiedenen Dateien zu blättern.

Bevor ich in die Münchsche Methode eingeführt wurde, habe ich for-each mit 'Vorhergehend' verwendet, um nach doppelten Knoten zu suchen. 'Vorhergehend' scheint jedoch nur das aktuelle Dokument zu durchsuchen und konnte keine Informationen zur Verwendung dieses Verfahrens in mehreren Dokumenten finden.

Ist es mit einer dieser Methoden möglich, mehrere Dokumente nach doppeltem Elementtext zu durchsuchen?

Vielen Dank für jede Hilfe.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage