xsl 中字符串的初始数字部分或整数部分 [英] Initial number part or integer portion of a string in xsl

查看:45
本文介绍了xsl 中字符串的初始数字部分或整数部分的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

通过使用 xsl 模板,谁能告诉我如何获取字符串字段的第一个数字部分

By using xsl template, can any one tell me the way to get first number portion of a string field

例如:

'12'        -> should result in -> 12
'5 ASDF'    -> should result in -> 5
'34SDF56'   -> should result in -> 34

推荐答案

这是一个单行 XPath 解决方案: :)

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="text"/>

 <xsl:template match="text()">
  <xsl:variable name="vS" select="concat(.,'Z')"/>
  <xsl:value-of select=
   "substring-before(translate($vS,translate($vS,'0123456789',''),'Z'),'Z')"/>
   <xsl:text>&#xA;</xsl:text>
 </xsl:template>
</xsl:stylesheet>

当此转换应用于以下 XML 文档时:

<t>
 <x>12</x>
 <x>5 ASDF</x>
 <x>34SDF56</x>
</t>

产生想要的、正确的结果:

12
5
34

这篇关于xsl 中字符串的初始数字部分或整数部分的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆