Word插件XPath处理ERP订单号:去除开头字母与前导零
解决方案
你可以用XPath的字符串组合函数实现需求,把已有的去首字母表达式和处理前导零的逻辑结合起来,完整表达式如下:
substring( substring((PropertyLabel[@FieldName ='xxordhdr.order_number_and_suffix']/FieldValue), 2), string-length( substring-before( substring((PropertyLabel[@FieldName ='xxordhdr.order_number_and_suffix']/FieldValue), 2), translate(substring((PropertyLabel[@FieldName ='xxordhdr.order_number_and_suffix']/FieldValue), 2), '0', '') ) ) + 1 )
逻辑说明
- 先用你已写的
substring(..., 2)去掉订单号开头的字母,得到类似013148180-00或005238905-01的字符串。 translate(..., '0', '')会把这个字符串里所有的0删除,留下从第一个非零字符开始的部分(比如005238905-01会变成5238905-01)。substring-before(..., 上面的结果)会提取出原字符串开头的所有连续前导零(比如005238905-01对应的就是00)。string-length(...)获取这些前导零的长度,加1后就是第一个非零字符的位置。- 最后用
substring从这个位置开始截取,就得到了去掉前导零的目标结果。
验证示例
- 输入
o013148180-00→ 去掉首字母后是013148180-00→ 处理后得到13148180-00 - 输入
t005238905-01→ 去掉首字母后是005238905-01→ 处理后得到5238905-01
内容的提问来源于stack exchange,提问作者LinNZ
相关产品推荐
相关产品推荐

