如何在Mule表达式中忽略XPath提取值的大小写?
解决Mule中XPath3大小写不敏感匹配的问题
没问题,我来给你几个实用的思路,帮你实现忽略大小写的条件判断:
方法一:统一转为小写比较
利用XPath的lower-case()函数,把目标节点的文本转成全小写,再和全小写的目标字符串对比:xpath3('lower-case(//CallingSourceSystemNm)') == "cimlookup"不管原节点值是全大写、全小写还是混合大小写,转成小写后就能和目标值完全匹配。
方法二:统一转为大写比较
和上面的逻辑一致,只是换成upper-case()函数转成全大写:xpath3('upper-case(//CallingSourceSystemNm)') == "CIMLOOKUP"这个更贴近你原本的目标字符串写法,看你个人习惯选择。
方法三:使用XPath的matches正则匹配
用XPath的matches()函数,通过正则表达式的忽略大小写标志(i)来实现匹配:xpath3('matches(//CallingSourceSystemNm, "CIMLOOKUP", "i")')这里的第三个参数
"i"表示忽略大小写,只要节点文本和正则模式(这里就是目标字符串)匹配,不管大小写都会返回true。
这些方法都是基于Mule支持的XPath 2.0特性,xpath3函数默认是支持这些语法的,你可以直接测试使用。
内容的提问来源于stack exchange,提问作者SDE
相关产品推荐
相关产品推荐

