ESQL-> 如何使用 SELECT 语句从输入 XMLNSC 中检索值?



我需要根据其名称访问特定的XMLNSC值。我有一个输入xmlnsc,看起来像这样

<Message>
<Tags>
<Name>ev1</Name>
<Length>004</Length>
<Value>0050</Value>
</Tags>
</Message>

我试图通过使用<Name>元素访问<Value>元素。那是我的陈述,但我认为是不正确的。

SET OutputRoot.JSON.Data.records[i].userId = THE (SELECT ITEM FIELDVALUE (InputRoot.XMLNSC.Message.Tags.Value)
FROM InputRoot.XMLNSC.Message.Tags
WHERE InputRoot.XMLNSC.Message.Tags.Name = 'ev1');

我想知道在ESQL中实现这一点的正确方法是什么。提前感谢!

我想我发现了你的错误。FROM子句中需要[]。这可能有效(未测试):

SET OutputRoot.JSON.Data.records[i].userId = THE (
SELECT ITEM FIELDVALUE (tag.Value)
FROM InputRoot.XMLNSC.Message.Tags[] AS tag
WHERE tag.Name = 'ev1'
);

对于简单的类型,如字符,您只需要THE和ITEM,我建议您这样做:

SET OutputRoot.JSON.Data.records[i].userId = THE(SELECT ITEM P.Value FROM InputRoot.XMLNSC.Message.Tags[] AS P 
WHERE P.Name = 'ev1');

如果存在,则返回' value '的值,而不是ROW。所以检查一下

最新更新