我正在尝试访问Azure KQL中的一个XML元素属性,并使用parse_XML将其转换为JSON。然而,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;
如果你运行上面的代码,它就会工作。但是,如果您在打印语句中对sCurrent的引用中进行了注释,它会弹出一个错误,内容为:
运行查询时出现问题。请稍后再试
你知道如何在extractjson函数中引用currency属性吗?
您不需要使用extract_json()
,只需使用动态对象访问器即可:https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/scalar-data-types/dynamic#dynamic-对象访问者
print input_xml = "<NetAmount currency="USD">150.00</NetAmount>"
| project sJson = parse_xml(input_xml)
| project amount = sJson.NetAmount['#text'], currency = sJson.NetAmount['@currency']
金额 | ||
---|---|---|
150.00 | 美元 |