这是我第一次使用 XSLT。我正在尝试创建一个文件,该文件将从我使用的程序导出的 XML 数据文件转换为 HTML 报告。
元素的值之一是图像文件的路径,但生成的路径是绝对路径,例如
C:\Documents and Settings\me\Desktop\xml export\cd000402.jpg
但我只想要文件名的相对路径。
有没有办法通过 XLST 文件解析出文件名?
最佳答案
XPath 包含 substring-after
函数返回第一次出现另一个字符串后的字符串。这本身是不够的,但是像下面这样的模板可能会做到:
<xsl:template name="filename-only">
<xsl:param name="path" />
<xsl:choose>
<xsl:when test="contains($path, '\')">
<xsl:call-template name="filename-only">
<xsl:with-param name="path" select="substring-after($path, '\')" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$path" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
可用的字符串函数集并不是非常广泛,但我发现它对于 XSLT 中需要的大多数应用程序来说已经足够了。
关于string - XSLT 可以解析一串文本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1569523/