You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在KQL的extractjson函数中引用以@开头的XML属性

Azure KQL中访问XML转换后带@前缀属性的正确方法

问题原因

parse_xml将XML转换为JSON结构时,XML元素的属性会自动加上@前缀作为键名。extractjson的JSON路径语法不支持直接通过点式写法访问带特殊符号的键名,因此直接写$.NetAmount.@currency会触发语法错误。

解决方法

方法1:修改extractjson的路径写法

包含特殊符号的键名需要用方括号+引号包裹,路径字符串写法调整如下:

let input_xml="<NetAmount currency=\"USD\">150.00</NetAmount>";
let sJson=tostring(parse_xml(input_xml));
let amount=extractjson("$.NetAmount.#text", sJson);
// 带@的属性名用方括号包裹
let sCurrency=extractjson("$.NetAmount['@currency']", sJson);
print input_xml, amount, sJson, sCurrency;

方法2:直接使用动态类型访问(更推荐)

parse_xml本身返回的是dynamic类型,无需转字符串调用extractjson,可直接访问属性,性能更高且写法更简洁:

let input_xml="<NetAmount currency=\"USD\">150.00</NetAmount>";
let xmlObj = parse_xml(input_xml);
let amount = xmlObj.NetAmount.["#text"];
let sCurrency = xmlObj.NetAmount.["@currency"];
print input_xml, amount, sCurrency;

内容的提问来源于stack exchange,提问作者Ian Jarvis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 16:36:08