다음을 통해 공유


parse_xml()

적용 대상: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

XML string 값으로 해석하고, 값을 JSON으로 변환하고, 값을 다음과 같이 dynamic반환합니다.

구문

parse_xml(xml)

구문 규칙에 대해 자세히 알아봅니다.

매개 변수

이름 Type 필수 설명
xml string ✔️ 구문 분석할 XML 형식 문자열 값입니다.

반품

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

참고 항목

  • 최대 입력 string 길이 parse_xml 는 1MB(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.min (118.0100.0각각)를 검색합니다duration.value.

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