Hallo,
ich möchte aus eine XML-Datei, alle Tags ab dem 6. Element ausgeben, dieses klappt gut. Weiteres möchte ich, dass im Falle, wenn weniger als 6. Elemente vorhanden sind, dass eine Meldung ausgegeben wird. Dieses klappt leider nicht.
xsl:template
...
<xsl:apply-templates select="document('Test.xml')//Element"/>
...
</xsl:template>
<xsl:template match="Element">
<xsl:if test="position() > 5">
Das kann nichts bringen. position() wird hier immer 1 sein, weil das Template für jedes Element neu instantiiert (sprich neu aufgerufen und ausgeführt) wird.
Statt:
xsl:template
...
<xsl:apply-templates select="document('Test.xml')//Element"/>
...
</xsl:template>
nimm sowas (hier nur schematisch dargestellt):
xsl:template
...
<xsl:variable name="counter" select="count(document('Test.xml')//Element)" />
<xsl:for-each select="document('Test.xml')//Element">
xsl:choose
when test: counter = 0
keine Elemente
when test: position() < 6
apply-templates
otherwise
...
</xsl:template>
Grüße
Thomas