这让我非常疯狂......我不是一个正则表达式的人... sooo
我在线尝试了几个正则表达式示例,但没有!正在......
我想要匹配的内容:
/path1/path2/filename.zip$parameter1=aaaaa
我想得到的是:
path1
path2
和文件名(没有查询参数/ s或前导斜杠...)所以只是filename.zip
是的,我被XSLT 1.0困住了......
答案 0 :(得分:0)
以此为出发点:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8"/>
<xsl:param name="query">/path1/path2/filename.zip$parameter1=aaaaa</xsl:param>
<xsl:template match="/">
<xsl:call-template name="tokenize">
<xsl:with-param name="text" select="substring-before($query, '$')"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="tokenize">
<xsl:param name="text"/>
<xsl:param name="delimiter" select="'/'"/>
<xsl:variable name="token" select="substring-before(concat($text, $delimiter), $delimiter)" />
<xsl:if test="$token">
<xsl:value-of select="$token"/>
<xsl:text disable-output-escaping="yes"> </xsl:text>
</xsl:if>
<xsl:if test="contains($text, $delimiter)">
<!-- recursive call -->
<xsl:call-template name="tokenize">
<xsl:with-param name="text" select="substring-after($text, $delimiter)"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
应用于任何XML输入,结果将是:
path1
path2
filename.zip