删除XSLT中路径的第一个元素

时间:2015-09-24 10:48:10

标签: string xslt tokenize

我正在尝试删除XSLT 2.0中路径查找字符串的前3个“标记”。

例如,从D:/FolderA/folderB/folderC/file.ext转到folderC/file.ext

除了使用我正在努力编写的递归函数之外,我无法快速找到它。

<xsl:variable name="tokenizedPath" select="(tokenize($url,'/'))" />
<xsl:value-of select="yy:restofpath($tokenizedPath,2)" />

其中yy:restofpath可能是这样的:

<xsl:function name="yy:restofpath" as="xs:string">
  <xsl:param name="pathtokens"/>
  <xsl:param name="startIndex"/>
  <xsl:variable name="length" select="count($pathtokens)"/>
  <xsl:for-each select="$pathtokens">
    <xsl:value-of select="string-join(.,yy:restofpath($pathtokens,),'')"/>
  </xsl:for-each>
</xsl:function>

这是一个我无法写的哑函数,我很困惑如何处理我的标记化字符串。

也许有一种更简单的内置方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

鉴于:

<xsl:variable name="tokenizedPath" select="tokenize($url,'/')" />

然后你可以使用:

<xsl:value-of select="string-join($tokenizedPath[position() gt 3], '/')"/>