parse_xml()
適用於:✅Microsoft網狀架構✅Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel
將 string
解譯為 XML 值、將值轉換成 JSON,並將值傳回為 dynamic
。
語法
parse_xml(
xml)
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
xml | string |
✔️ | 要剖析的 XML 格式字串值。 |
傳回
動態類型的 物件,如果 XML 格式無效,則為 xml 值或 null。
轉換工作如下:
XML | JSON | 存取 |
---|---|---|
<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.e.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"]