2009-09-30 88 views

回答

6

选择URL的一部分。你只需要确保你有正确的名称空间URI。

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

修剪网址。如何做到最好取决于您使用的是XSLT 1还是2,因为后者在XPath 2.0中具有更好的字符串处理功能。

如果使用XSLT 1,您可能希望创建一个帮助模板返回的最后一段了分隔字符串:

<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> 

然后你就可以利用该提取的最后一段网址,然后继续提取点之前的部分。假设URL为变量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, '.')"/>