如何从XPath中获取字符串中的数字

时间:2011-09-07 16:11:42

标签: xpath xpath-2.0

我有一个包含数字的字符串。仅在XPath中我只能获得数字吗?

例如:myString =“abcd12ef34gh567”,结果:1234567

2 个答案:

答案 0 :(得分:12)

使用

translate(., translate(.,'0123456789',''), '')

这就是所谓的“双翻译”方法,由@Michael Kay首先提出,可以在XPath 1.0和XPath 2.0中使用。

当然,在XPath 2.0中使用RegeX通常会更有效率

replace('abc123def590xyz', '[^\d]', '')

答案 1 :(得分:2)

如果可以保证非数字字符只是小写字母(如示例所示),则可以在XPath 1中执行以下操作:

translate($myString, 'abcdefghijklmnopqrstuvwxyz', '')

您可以根据需要在字母表字符串中添加其他字符。

在XPath 2中,您可以使用正则表达式:

replace($myString, '[^0-9]', '')