【问题标题】:snowflake XML Parsing returns NULL - SPACE in field name?雪花 XML 解析返回 NULL - 字段名称中的空格?
【发布时间】:2020-01-03 19:33:17
【问题描述】:

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

选择 GET(lvl,'@ap id')::integer 作为 "ap id" from (SELECT src:"$" as lvl FROM XMLDATA);

SELECT XMLGET(SRC, 'ap id' ):"@" as "ap id" 来自 XML 数据;

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

【问题讨论】:

    标签: xml snowflake-cloud-data-platform


    【解决方案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;
    

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      • 2021-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多