parse_xml()parse_xml()

Интерпретирует string как значение XML, преобразует значение в JSON и возвращает значение в виде dynamic .Interprets a string as a XML value, converts the value to a JSON and returns the value as dynamic.

СинтаксисSyntax

parse_xml(xml)parse_xml(xml)

АргументыArguments

  • XML: выражение типа string , представляющее значение в формате XML.xml: An expression of type string, representing a XML-formatted value.

РезультатыReturns

Объект типа dynamic , который определяется значением XMLили значением NULL, если формат XML является недопустимым.An object of type dynamic that is determined by the value of xml, or null, if the XML format is invalid.

Преобразование выполняется следующим образом.The conversion is done as following:

XMLXML JSONJSON ДоступAccess
<e/> {"e": NULL}{ "e": null } o. eo.e
<e>text</e> {"e": "Text"}{ "e": "text" } o. eo.e
<e name="value" /> {"e": {" @name ": "value"}}{ "e":{"@name": "value"} } o. e [" @name "]o.e["@name"]
<e name="value">text</e> {"e": {" @name ": "value", "#text": "Text"}}{ "e": { "@name": "value", "#text": "text" } } o. e [" @name "] o. e ["#text"]o.e["@name"] o.e["#text"]
<e> <a>text</a> <b>text</b> </e> {"e": {"a": "Text", "b": "Text"}}{ "e": { "a": "text", "b": "text" } } o. e. a o. e. bo.e.a o.e.b
<e> <a>text</a> <a>text</a> </e> {"e": {"a": ["Text", "Text"]}}{ "e": { "a": ["text", "text"] } } o. e. a [0] o. e. a [1]o.e.a[0] o.e.a[1]
<e> text <a>text</a> </e> {"e": {"#text": "Text", "a": "Text"}}{ "e": { "#text": "text", "a": "text" } } 1 "o. e [" #text "] o. e. a1`o.e["#text"] o.e.a

ПримечанияNotes

  • Максимальная длина входных данных string для parse_xml равна 1 мб (1 048 576 байт).Maximal input string length for parse_xml is 1MB (1,048,576 bytes). Более длинная интерпретация строк приведет к пустому объектуLonger strings interpretation will result in a null object
  • Будут переведены только узлы элементов, атрибуты и текстовые узлы.Only element nodes, attributes and text nodes will be translated. Все остальное будет пропущеноEverything else will be skipped

ПримерExample

В следующем примере context_custom_metrics представляет собой string, который выглядит следующим образом.In the following example, when context_custom_metrics is a string that looks like this:

<?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:then the following CSL Fragment translates the XML to the following 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.value и duration.min ( 118.0 и 100.0 соответственно).and retrieves the value of the duration slot in the object, and from that it retrieves two slots, duration.value and duration.min (118.0 and 100.0, respectively).

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