xml - 使用 Snowflake 和 XMLGET 解析 XML 文件
问题描述
我正在尝试解析这个 xml 代码片段。我正在使用雪花数据库尝试创建表。使用 XMLGET 函数,我在所有字段中都得到空返回。我对如何获取标签的属性有点困惑,我以前做过一些事情并且已经得到了一个对象的值,但是属性中的值没有
<Msg_file>
<Game Number="2020000001">
<Msg_game_info>
<Game_info Game_id="2020000001" Game_date="11/01/2020" Game_time="06:00 PM" />
</Msg_game_info>M
</Game>
</Msg_file>
解决方案
它有效,但实际上并不像您想象的那么简单。这是一个例子:
create or replace table xmltest(x variant);
insert into xmltest SELECT PARSE_XML(column1) as X FROM VALUES ('<Msg_file><Game Number="2020000001"><Msg_game_info><Game_info Game_id="2020000001" Game_date="11/01/2020" Game_time="06:00 PM"></Game_info></Msg_game_info></Game></Msg_file>');
以下将起作用:
select XMLGET(X, 'Game'):"@Number" AS game FROM xmltest; --return 2020000001
select XMLGET(VALUE, 'Game_info'):"@Game_date" AS game FROM xmltest, LATERAL FLATTEN( INPUT => X:"$" ) LIMIT 1; --returns "11/01/2020"
要更好地理解 XML 解析是如何完成的,请阅读以下文章
推荐阅读
- javascript - 使用参数将 onlick 事件添加到多个元素
- angularjs - AngularJS范围变量值的变化没有反映在控制器之间
- python - 如果不允许从 Python 直接连接,有哪些选项可以连接到 SharePoint 列表
- rust - 根据目标平台生成 Rust 可执行文件或库
- php - PHP循环遍历没有索引名称的数组
- reactjs - 获取使用在 IE11 中工作的 create-react-app 创建的应用程序
- javascript - 如何在用户单击复选框所在的行时切换复选框?
- swift - Stripe 与 iOS 的集成:保存和引用已保存的卡片
- google-cloud-platform - 数据流 - 使用私有 IP 调用外部 API
- python - 无法在 Django 的同一数据库中的第二个表中插入数据