共用方式為


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_metricsstring 如下所示的 :

<?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.valueduration.min118.0100.0)。

T
| extend d=parse_xml(context_custom_metrics) 
| extend duration_value=d.duration.value, duration_min=d["duration"]["min"]