任何人都可以告诉我如何从中选择网址:
<media:content url="http://feedproxy.google.com/~r/TEDTalks_video/~5/aZWq6PY05YE/TimBrown_2009G.mp4" fileSize="57985745" type="video/mp4" />
我想:
创建指向此文件的链接:
修剪网址:
http://feedproxy.google.com/~r/TEDTalks_video/~5/aZWq6PY05YE/TimBrown_2009G.mp4
为:
TimBrown_2009G
然后选择:TimBrown_2009G并将其用作URL的一部分
答案 0 :(得分:6)
选择网址。您只需确保拥有正确的命名空间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位于变量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, '.')"/>