我需要找到一个数字在字符串中的第一个匹配项,并使用XSLT在该数字之前获取文本字符串 外汇:Fazantstraat 22是我只需要将Fazantstraat字符串化的字符串 ,abcdefg 1234,所以我需要abcdefg等
答案 0 :(得分:2)
给出:
<input>Fazantstraat 22</input>
以下说明:
<xsl:value-of select="substring-before(translate(input, '123456789', '000000000'), '0')"/>
将返回:
Fazantstraat
(带有尾随空格)。那是针对XSLT 1.0的。
在XSLT 2.0中,您可以使用正则表达式:
<xsl:value-of select="replace(input, '\d.*', '')"/>
如果要将输入分为两个单独的元素,最好使用xsl:analyze-string
指令(在XSLT 2.0中),例如:
<xsl:analyze-string select="input" regex="\d.*">
<xsl:matching-substring>
<number>
<xsl:value-of select="." />
</number>
</xsl:matching-substring>
<xsl:non-matching-substring>
<address>
<xsl:value-of select="." />
</address>
</xsl:non-matching-substring>
</xsl:analyze-string>