雪花XML解析返回NULL-字段名称中的空格?

时间:2020-01-03 19:33:17

标签: xml snowflake-cloud-data-platform

我正在尝试在xml下面获取ap id值,但返回NULL。请帮忙。如果可能的话,请给我发送扁平化查询,以扁平化雪花中的以下xml文件。我对雪花很陌生,您的任何帮助将不胜感激。这是因为字段名称“ ap id”中的空格吗?我不信。如何处理XML文件中雪花中带有空格的字段名称?

从以下位置选择GET(lvl,'@ ap id'):: integer作为“ ap id” (SELECT src:“ $” as lvl FROM XMLDATA);

SELECT XMLGET(SRC,'ap id'):“ @”作为“ ap id” 来自XMLDATA;

选择 GET(src,'@ap id'):: integer as ap_id 来自XMLDATA;

1 个答案:

答案 0 :(得分:1)

您可以尝试:

select src:"$"."@id" as app_id
from xmldata;

这是一种通过展平并搜索已知值来查找路径的方法:

with xmldata as (
    select parse_xml('<amp_ap_detail><ap id="1610">asdf</ap></amp_ap_detail>') src
)
select path, value 
from xmldata, lateral flatten(input=>xmldata.src, recursive=>true) f
where value = 1610;

在这种情况下会产生:

PATH            VALUE
['$']['@id']    1610

将PATH映射到Snowflake的字段标识符表示法中...

with xmldata as(
    select parse_xml('<amp_ap_detail><ap id="1610">asdf</ap></amp_ap_detail>') src
)
select src:"$"."@id" as app_id
from xmldata;

希望有帮助。