我正在尝试提取第二次出现' - '
之前的字符串实施例: 我有这个字符串: xx-xxxx-xxxxx-xxxxxx 我试着只有: xx-xxxx
但我们也可以使用此字符串: xxx-xxx-xxxxx-xxxxxx 然后我需要: xxx-xxx
我尝试使用substring-before / after来制作它,但我没有设法获得所需的结果。然后我想知道在xslt 1.0中是否可以这样做?
我尝试的代码示例:
<xsl:template match="/RESULT">
<RESULT>
<xsl:if test="contains(Number,'-')">
<ref>
<xsl:value-of select="substring-before(substring-after(Number,'-')'')"/>
</ref>
</xsl:if>
</RESULT>
</xsl:template>
提前谢谢
答案 0 :(得分:2)
要在第一个-
之前获取子字符串...
substring-before(Number, '-')
要在第二个-
之前获取子字符串,但在第一个-
之后...
substring-before(substring-after(Number, '-'), '-')
然后,您可以连接这些以获得您想要的值
<xsl:value-of select="concat(substring-before(Number, '-'), '-', substring-before(substring-after(Number, '-'), '-'))" />
如果你可以使用XSLT 2.0,你可以这样......
<xsl:value-of select="tokenize(Number, '-')[position() <= 2]" separator="-" />