Partilhar via


parse_xml()

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Interpreta a string como um valor XML, converte o valor em JSON e retorna o valor como dynamic.

Sintaxe

parse_xml(xml)

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
xml string ✔️ O valor da cadeia de caracteres formatada em XML a ser analisado.

Devoluções

Um objeto do tipo dynamic que é determinado pelo valor de xml ou null, se o formato XML for inválido.

A conversão é feita da seguinte maneira:

XML JSON Access
<e/> { "e": null } o.e
<e>text</e> { "e": "texto" } o.e
<e name="value" /> { "e":{"@name": "valor"} } o.e["@name"]
<e name="value">text</e> { "e": { "@name": "valor", "#text": "texto" } } o.e["@name"] o.e["#text"]
<e> <a>text</a> <b>text</b> </e> { "e": { "a": "texto", "b": "texto" } } o.e.a o.e.b
<e> <a>text</a> <a>text</a> </e> { "e": { "a": ["texto", "texto"] } } o.e.a[0] o.e.a[1]
<e> text <a>text</a> </e> { "e": { "#text": "texto", "a": "texto" } } 1'o.e["#text"] o.e.a

Observação

  • O comprimento máximo de entrada string para parse_xml é de 1 MB (1.048.576 bytes). A interpretação de cadeias de caracteres mais longas resultará em um objeto nulo.
  • Somente nós de elemento, atributos e nós de texto serão traduzidos. Todo o resto será ignorado.

Exemplo

No exemplo a seguir, quando context_custom_metrics é um string que se parece com isto:

<?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>

em seguida, o seguinte fragmento CSL converte o XML para o seguinte JSON:

{
    "duration": {
        "value": 118.0,
        "count": 5.0,
        "min": 100.0,
        "max": 150.0,
        "stdDev": 0.0,
        "sampledValue": 118.0,
        "sum": 118.0
    }
}

e recupera o valor do duration slot no objeto e, a partir disso, recupera dois slots, duration.value e duration.min (118.0 e 100.0, respectivamente).

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