在ESQL中通过动态标签从XML提取对应值的实现问题
ESQL动态提取XML标签值解决方案
现有XML结构
<family> <child_one>ROY</child_one> <child_two>VIC</child_two> </family>
原有写法问题
直接将变量放在(XML.Element)后时,ESQL会将dynamicTag识别为固定标签名,而非读取变量的实际值作为标签名,因此无法匹配到对应节点。
正确实现代码
ESQL提供了大括号包裹变量的动态引用语法,调整后写法如下:
-- 拼接动态标签名 SET dynamicTag = 'child_' || num; -- 动态匹配节点并取值,注意路径要和XML实际层级对应 SET value = InputRoot.XMLNSC.family.(XML.Element){dynamicTag};
效果验证
- 当
num取值为one时,value返回结果为ROY - 当
num取值为two时,value返回结果为VIC
内容的提问来源于stack exchange,提问作者S.Mohanty
相关产品推荐
相关产品推荐

