【问题标题】:Fetch value from XML using dynamic tag in ESQL在 ESQL 中使用动态标签从 XML 中获取值
【发布时间】:2021-12-14 15:33:38
【问题描述】:

我有一个xml

<family>
   <child_one>ROY</child_one>
   <child_two>VIC</child_two>
</family>

我想根据 ESQL 中的动态标记从 XML 中获取值。我试过这样

SET dynamicTag = 'child_'||num;
SET value = InputRoot.XMLNSC.parent.(XML.Element)dynamicTag;

这里num 是从输入接收到的值,它可以是onetwo。如果numone,则结果应该是value = ROY,如果numtwo,则值为VIC

【问题讨论】:

    标签: ibm-integration-bus extended-sql


    【解决方案1】:

    ESQL field reference overview 章节描述了这个用例:

    因为字段的名称出现在 ESQL 程序中,所以在编写程序时必须知道它们。可以通过使用使用大括号 ({ ... } ) 的替代语法来避免此限制。

    所以可以像这样改变你的代码:

    SET value = InputRoot.XMLNSC.parent.(XMLNSC.Element){dynamicTag};
    

    注意元素类型的变化,见@kimbert的评论。

    【讨论】:

    猜你喜欢
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多