gpt4 book ai didi

c# - 使用 XSLT 1.0 (c# .Net Core) 从路径获取文件名

转载 作者:行者123 更新时间:2023-11-30 23:05:25 26 4
gpt4 key购买 nike

请帮帮我。如何使用 XSLT 1.0 从这样的字符串中获取文件名?

filestore:/722601940006/2018/02/09/file.jpg

文件可以有不同的名称和扩展名。一条路径可以有不同的深度。

我尝试使用正则表达式和函数 tokenize():

<xsl:value-of select="tokenize('$file/@fh:fileRef','.*/(.*?)$')"/>

但是我发现 .Net Core 不支持 XSLT 2.0

最佳答案

因为您仅限于 XSLT-1.0,所以需要一个递归模板。因此,避免等待 Microsoft 响应的一种 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

关于c# - 使用 XSLT 1.0 (c# .Net Core) 从路径获取文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48844796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com