2009-09-30 8 views

Répondre

6

Sélection de l'URL. Vous avez juste besoin de vous assurer que vous avez l'URI d'espace de noms correct.

<xsl:value-of xmlns:media="http://search.yahoo.com/mrss/" 
       select="media:content/@url"/> 

Réduire l'URL. La meilleure façon de procéder est de savoir si vous utilisez XSLT 1 ou 2, car ce dernier a de meilleures fonctions de traitement de chaîne depuis XPath 2.0.

Si vous utilisez XSLT 1, vous pouvez créer un modèle d'aide pour retourner le dernier segment sur une chaîne délimitée:

<xsl:template name="last-substring-after"> 
    <xsl:param name="string"/> 
    <xsl:param name="separator"/> 
    <xsl:choose> 
    <xsl:when test="contains($string, $separator)"> 
     <xsl:call-template name="last-substring-after"> 
     <xsl:with-param name="string" 
         select="substring-after($string, $separator)"/> 
     <xsl:with-param name="separator" 
         select="$separator"/> 
     </xsl:call-template> 
    </xsl:when> 
    <xsl:otherwise> 
     <xsl:value-of select="$string"/> 
    </xsl:otherwise> 
    </xsl:choose> 
</xsl:template> 

Vous pouvez alors utiliser que pour extraire le dernier segment de l'URL, et continuez à extraire la partie avant le point. En supposant que l'URL est en variable url:

<xsl:variable name="name"> 
    <xsl:call-template name="last-substring-after"> 
    <xsl:with-param name="string" select="$url"/> 
    <xsl:with-param name="separator" select="'/'"/> 
    </xsl:call-template> 
</xsl:variable> 
<xsl:value-of select="substring-before($name, '.')"/>