string - XSLT 可以解析一串文本吗?

标签 string parsing xslt fxsl

这是我第一次使用 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/

相关文章:

c - 在解析树中打印第三个字符串时出现段错误

perl - 无法用perl解析html标签

xml - 根据属性比较2个节点集

xml - xslt 测试 bool 表达式中的 IN 函数

C++ 字符串数组和 bool 值

c++ - 从 C++ 函数返回一个字符串

java - 解析包含分隔符的字符串

parsing - PEG.js - 如何解析 C 风格的注释?

xml - 使用 XSLT 转换 Heat 生成的 .wxs(添加 RegistryValue 并编辑一些值)

javascript - 为什么无法 Array.prototype.pop.call() 字符串?