Dirk T.: Performancefrage für xsl:template

Beitrag lesen

Hallo,

ich habe ein relativ großes xml file. "Verarbeitung" erfolgt mit xsl.

Würde es einen Unterschied machen, wenn ich in einem template Aufruf über das match attribute das "Trefferfeld" eingrenzen würde, obwohl ich danach sowieso eine konkrete for-each anweisung gebe? Oder könnte ich auch das match attribute weglassen? Als kleines Beispiel:

<xsl:call-template name="templatename"/>

<xsl:template match="*[*[local-name() != 'ename3' and local-name() != 'ename4']" name="templatename">

<xsl:for-each select="*/*[local-name() = 'ename1' or local-name() = 'ename2']">
.
.
.
</xsl:for-each>

</xsl:template>

Also in der for-each anweisung nur elemente mit ename1 und ename2. Bringt es dann etwas, wenn im match attribute die ename3 und ename4 ausschliesse? Wäre die Angabe für match richtig wenn sich ename1 bis ename 4 auf der gleichen stufe befinden? Würde es einen Unterschied machen, wenn ich das template mit call-template oder mit apply-template aufrufen würde? Wäre dankbar fuer Ratschläge. Anmerkung ich kann nicht match="*/*[local-anme() ......] verwenden, da ich in der for-each Anweisung noch einmal auf die Stufe über ename1 zugreifen muss.