你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
parse_xml()
适用于:✅Microsoft Fabric✅Azure 数据资源管理器Azure Monitor✅Microsoft✅ Sentinel
将 string
解释为 XML 值,将值转换为 JSON,然后将值作为 dynamic
返回。
语法
parse_xml(
xml)
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
xml | string |
✔️ | 要分析的 XML 格式字符串值。 |
返回
一个 dynamic 类型的对象(取决于 xml 的值);如果 XML 格式无效,则其类型为 null。
完成转换的方式如下:
XML | JSON | Access |
---|---|---|
<e/> |
{ "e": null } | o.e |
<e>text</e> |
{ "e": "text" } | o.e |
<e name="value" /> |
{ "e":{"@name": "value"} } | o.e["@name"] |
<e name="value">text</e> |
{ "e": { "@name": "value", "#text": "text" } } | o.e["@name"] o.e["#text"] |
<e> <a>text</a> <b>text</b> </e> |
{ "e": { "a": "text", "b": "text" } } | o.e.a o.e.b |
<e> <a>text</a> <a>text</a> </e> |
{ "e": { "a": ["text", "text"] } } | o.e.a[0] o.e.a[1] |
<e> text <a>text</a> </e> |
{ "e": { "#text": "text", "a": "text" } } | 1`o.e["#text"] o.e.a |
注意
parse_xml
的最大输入string
长度为 1 MB(1,048,576 字节)。 更长的字符串解释会生成 null 对象。- 只会转换元素节点、属性和文本节点。 将跳过其他所有内容。
示例
在以下示例中,如果 context_custom_metrics
是类似如下的 string
:
<?xml version="1.0" encoding="UTF-8"?>
<duration>
<value>118.0</value>
<count>5.0</count>
<min>100.0</min>
<max>150.0</max>
<stdDev>0.0</stdDev>
<sampledValue>118.0</sampledValue>
<sum>118.0</sum>
</duration>
则下面的 CSL 片段会将 XML 转换为以下 JSON:
{
"duration": {
"value": 118.0,
"count": 5.0,
"min": 100.0,
"max": 150.0,
"stdDev": 0.0,
"sampledValue": 118.0,
"sum": 118.0
}
}
此外还会检索对象中 duration
槽的值,并从中检索两个槽:duration.value
和 duration.min
(分别为 118.0
和 100.0
)。
T
| extend d=parse_xml(context_custom_metrics)
| extend duration_value=d.duration.value, duration_min=d["duration"]["min"]