Hi,
<xsl:apply-templates select="document('Test.xml')//Element"/>
Also wird das Template für alle "Element"-Elemente jeweils aufgerufen.
<xsl:template match="Element">
<xsl:if test="position() > 5">
<xsl:apply-templates />
</xsl:if>
Für das 6. bis letzte "Element"-Element wird apply-templates für die Kind-Elemente ausgeführt.
<xsl:if test="position() <= 5">
<p>Keine Elemente!</p>
</xsl:if>
Für die ersten 5 wird also "<p>Keine Elemente!</p>" ausgegeben.
Du erhältst also bis zu 5 mal "<p>Keine Elemente!</p> gefolgt von was auch immer das apply-templates für das 6. bis letzte "Element"-Element ergibt.
Du willst aber:
Wenn die Anzahl (count()) 5 oder weniger ist, "<p>Keine Elemente!</p>" ausgeben (5 sind keine?), sonst das apply-templates.
Ich würde hier statt zwei if ein choose machen:
xsl:choose
<xsl:when test="count(document('Test.xml')//Element) <= 5">
<p>Keine Elemente!</p>
</xsl:when>
xsl:otherwise
<xsl:apply-templates select="document('Test.xml')//Element"/>
</xsl:otherwise>
</xsl:choose>
cu,
Andreas
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.