ritschmanhard: <title> per XSL generieren

Beitrag lesen

Hi Patrick!

<xsl:template name="main">
    <xsl:if test="string(/data/nav/mainnav/@pageId)">
    <xsl:value-of select="/data/nav/mainnav"/>
    </xsl:if>
    </xsl:template>

bedeutet: wenn /data/nav/mainnav[1]/@pageId (die [1] wird von xsl automatisch angenommen)  ein String ist, dann gib /data/nav/mainnav[1] aus.
=> Browser hat recht.

<xsl:template name="main">
<xsl:for-each select="/data/nav">
xsl:choose
<xsl:when test="string(./mainnav/@pageId)">
<xsl:value-of select="./mainnav"/>
</xsl:when>
xsl:otherwise
<xsl:value-of select="./mainnav"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>

bedeutet: für jeden Knoten in (Knotenliste) /data/nav:
wenn dieses Knotens Subknoten ./mainnav[1]/@pageId ein string ist, dann gib den Subknoten ./mainnav[1] aus,
ansonsten gib den Subknoten ./mainnav[1] aus.
=> gibt also alle knoteninhalte der Gestalt /data/nav/mainnav[x]/. aus. => Browser hat wieder recht.

Womit du dich mal beschäftigen solltest, ist:
http://de.selfhtml.org/xml/darstellung/xsltelemente.htm#param
http://de.selfhtml.org/xml/darstellung/xsltelemente.htm#with_param

Grüsse, Richard