我需要根据其名称访问特定的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。所以检查一下