开发者

XSLT transformation: Substring after a last special character

开发者 https://www.devze.com 2023-02-06 21:05 出处:网络
I have fields \"commercial register code: 111开发者_JAVA技巧1111\" and \"commercial register code 2222\" I need to take after last space symbols: 1111111 and 2222. There is function to take symbolrs b

I have fields "commercial register code: 111开发者_JAVA技巧1111" and "commercial register code 2222" I need to take after last space symbols: 1111111 and 2222. There is function to take symbolrs before "space" in xsl?

Regards

Update from comments

I will have "comercial register 21 code:" line

And

"code" can be without ":" symbol


If there is going to be one and only one number, then you could use

translate($string,transtale($string,'0123456789',''),'')

This will remove any not digit character from the string.

If the prefixed label is stable, then you could use something like:

substring-after($string,'commercial register code:')

Abour the question:

There is function to take symbolrs before "space" in xsl?

Answer: Yes, substring-before() function

Update

From comments, it looks like the string pattern would be:

'commercial register' number 'code' (':')? number

Then use:

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


In XSLT 2.0, use tokenize($in, '\s+')[last()]

If you're stuck with 1.0, you need a recursive template: check out str:tokenize in the EXSLT library.


Can you use EXSLT functions? If so, there is a str:split function and then you can do:

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

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号