请帮帮我。 如何从这样的字符串中使用XSLT 1.0获取文件名?
<xsl:value-of select="tokenize('$file/@fh:fileRef','.*/(.*?)$')"/>
文件可以具有不同的名称和扩展名。路径可以有不同的深度。
我尝试使用正则表达式和函数tokenize():
document.write("Right");
但我发现.Net Core不支持XSLT 2.0
答案 0 :(得分:1)
因为您受限于XSLT-1.0,所以必须使用递归模板。因此,一个避免等待微软响应的XSLT-1.0解决方案将是
<xsl:template name="fileName">
<xsl:param name="str" />
<xsl:choose>
<xsl:when test="normalize-space(substring-after($str,'/'))">
<xsl:call-template name="fileName">
<xsl:with-param name="str" select="substring-after($str,'/')" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$str" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
用
调用它<xsl:call-template name="fileName">
<xsl:with-param name="str" select="yourFileNameString" /> <!-- insert string here -->
</xsl:call-template>
发出字符串
file.jpg