代码之家  ›  专栏  ›  技术社区  ›  CLiown

xsl-media:content-在xslt中剪裁字符串

  •  2
  • CLiown  · 技术社区  · 15 年前

    有人能告诉我如何从中选择URL吗?

    <media:content url="http://feedproxy.google.com/~r/TEDTalks_video/~5/aZWq6PY05YE/TimBrown_2009G.mp4" fileSize="57985745" type="video/mp4" />
    

    我想:

    1. 创建指向此文件的链接:

    2. 从以下位置修剪URL:

      http://feedproxy.google.com/~r/TEDTalks_video/~5/aZWq6PY05YE/TimBrown_2009G.mp4

    到:

    TimBrown_2009G
    

    然后取:Timbrown_2009g作为URL的一部分

    1 回复  |  直到 15 年前
        1
  •  6
  •   Jukka Matilainen    15 年前

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

    <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

    <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, '.')"/>