XSLT转换:最后一个特殊字符后的子字符串

XSLT转换:最后一个特殊字符后的子字符串,xslt,Xslt,在最后一个空格符号1111111和2222之后,我有字段“商业注册码:1111111”和“商业注册码2222”。在xsl中,是否有将符号置于“空格”之前的函数 问候 根据评论更新 我要“商业登记21” 代码:“行 及 “代码”可以不带“:”符号 如果只有一个数字,那么你可以使用 translate($string,transtale($string,'0123456789',''),'') 这将从字符串中删除任何非数字字符 如果前缀标签是稳定的,则可以使用以下内容: substring-aft

在最后一个空格符号1111111和2222之后,我有字段“商业注册码:1111111”和“商业注册码2222”。在xsl中,是否有将符号置于“空格”之前的函数

问候

根据评论更新

我要“商业登记21” 代码:“行

“代码”可以不带“:”符号


如果只有一个数字,那么你可以使用

translate($string,transtale($string,'0123456789',''),'')
这将从字符串中删除任何非数字字符

如果前缀标签是稳定的,则可以使用以下内容:

substring-after($string,'commercial register code:')
关于这个问题:

There is function to take symbolrs before "space" in xsl?
答:是的,功能

更新

从注释来看,字符串模式可能是:

'commercial register' number 'code' (':')? number
然后使用:

translate(substring-after($string,'code'), ': ', '')

如果只有一个数字,那么你可以使用

translate($string,transtale($string,'0123456789',''),'')
这将从字符串中删除任何非数字字符

如果前缀标签是稳定的,则可以使用以下内容:

substring-after($string,'commercial register code:')
关于这个问题:

There is function to take symbolrs before "space" in xsl?
答:是的,功能

更新

从注释来看,字符串模式可能是:

'commercial register' number 'code' (':')? number
然后使用:

translate(substring-after($string,'code'), ': ', '')

在XSLT2.0中,使用
tokenize($In,'\s+')[last()]


如果您一直使用1.0,则需要一个递归模板:在EXSLT库中签出str:tokenize。

在XSLT2.0中,使用
tokenize($in,'\s+')[last()]


如果你坚持使用1.0,你需要一个递归模板:在EXSLT库中签出str:tokenize。

你能使用EXSLT函数吗?如果是,则有一个函数,然后您可以执行以下操作:

str:split($string, ' ')[position()=last()]

你能使用EXSLT功能吗?如果是,则有一个函数,然后您可以执行以下操作:

str:split($string, ' ')[position()=last()]

谢谢您的回答,但如果我有“商业注册21代码:”行,那么将使用和“21”以及翻译函数…“回答:是的,字符串-before()函数”我想您指的是substring-before()?@Arunas:那么您应该提供一个有用的示例。如果所有标签的格式都是
commercial register##code:
,那么在($string,'code:')之后使用
子字符串。
谢谢Alejandro,您的回答非常有用!谢谢您的回答,但如果我有“商业注册21代码:”行,那么将使用和“21”以及翻译函数…“回答:是的,字符串-before()函数”我想您指的是substring-before()?@Arunas:那么您应该提供一个有用的示例。如果所有标签的格式都是
commercial register##code:
,那么在($string,'code:')之后使用
子字符串。
谢谢Alejandro,您的回答非常有用!