parse_xml()
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Interprète une string
valeur XML, convertit la valeur en json et retourne la valeur en tant que dynamic
.
Syntaxe
parse_xml(
xml)
En savoir plus sur les conventions de syntaxe.
Paramètres
Nom | Type | Requise | Description |
---|---|---|---|
xml | string |
✔️ | Valeur de chaîne au format XML à analyser. |
Retours
Objet de type dynamique déterminé par la valeur xml ou null, si le format XML n’est pas valide.
La conversion est effectuée 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 |
Remarque
- La longueur maximale d’entrée
string
estparse_xml
de 1 Mo (1 048 576 octets). L’interprétation de chaînes plus longues entraîne 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 code 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 celui-ci 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"]