Hallo,
hm und wieso funkt das net:
xsl:choose
<xsl:when test="@url">
<xsl:value-of select="titel"/>
</xsl:when>
Weil in diesem Fall du immer nur überprüfst ob das Attribut url vorhanden ist, und das ist sie auch dann wenn sie vorhanden ist, also trifft dieser Regel zu und der "titel" wird geschrieben. Der zweite Regel kommt also nicht mehr zum Einsatz.
xsl:choose
<xsl:when test="not(@url) or (@url = '')">
<!-- wenn @url NICHT vorhanden, oder vorhanden aber leer ist -->
<xsl:value-of select="titel"/>
</xsl:when>
xsl:otherwise
<!-- wenn @url vorhanden und nicht leer ist -->
<a href="{@url}">
<xsl:value-of select="titel"/>
</a>
</xsl:otherwise>
</xsl:choose>
Grüße
Thomas