我正在尝试删除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>
这是一个我无法写的哑函数,我很困惑如何处理我的标记化字符串。
也许有一种更简单的内置方法可以做到这一点?
答案 0 :(得分:1)
鉴于:
<xsl:variable name="tokenizedPath" select="tokenize($url,'/')" />
然后你可以使用:
<xsl:value-of select="string-join($tokenizedPath[position() gt 3], '/')"/>