parse_xml()

Interprète un string comme une valeur XML, convertit la valeur en json et retourne la valeur en tant que dynamic.

Syntax

parse_xml(xml)

Découvrez les conventions de syntaxe.

Paramètres

Nom Type Obligatoire Description
xml string ✔️ Valeur de chaîne au format XML à analyser.

Retours

Objet de type dynamique qui est déterminé par la valeur de xml, ou null, si le format XML n’est pas valide.

La conversion s’effectue comme suit :

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

Notes

  • La longueur d’entrée string maximale pour parse_xml est de 1 Mo (1 048 576 octets). L’interprétation de chaînes plus longues entraîne la présence d’un objet null.
  • Seuls les nœuds d’élément, les attributs et les nœuds de texte seront traduits. Tout le reste sera ignoré.

Exemple

Dans l’exemple suivant, quand context_custom_metrics est un élément string, le résultat ressemble à ceci :

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

Ensuite, le fragment CSL suivant traduit le XML en json suivant :

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

et récupère la valeur de l’emplacement duration dans l’objet , et à partir de là, il récupère deux emplacements, duration.value et duration.min (118.0 et 100.0, respectivement).

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