parse

Класс: matlab.net.http.HeaderField
Пакет: matlab.net.http

Проанализируйте значение поля заголовка и возвратитесь как строки

Описание

value = parse(obj) анализирует Value свойство поля заголовка и возвращает строки. Используйте этот метод, чтобы обработать поля заголовка, для которых нет никакого класса в matlab.net.http.field пакет. Используйте matlab.net.http.HeaderField.displaySubclasses метод, чтобы отобразить классы в пакете. Для классов в пакете используйте соответствующий convert метод, чтобы проанализировать значение.

Правила парсинга основаны на разделах 3.2.4-3.2.6 из RFC 7230, передают Синтаксис и Маршрутизацию и увеличиваются, чтобы интерпретировать несколько значений.

пример

value = parse(obj,fields) задает имена, чтобы использовать в struct без имени поля .

Если поле Nth struct не имеет никакого имени, соответствующего Энного имени в fields существует и непуст. Это используется вместо Arg_N. Используя этот синтаксис обеспечивает возвращенный value быть struct (или вектор struct объекты) с, по крайней мере, столькими же полей сколько длина fields. Обычно этот шаблон происходит в полях заголовка, которые начинаются с лексемы, сопровождаемой парами атрибута.

value = parse(___,Name,Value) задает один или несколько разделителей. Разделители по умолчанию являются запятыми и точками с запятой. Можно комбинировать с любым синтаксом из перечисленных выше.

Входные параметры

развернуть все

Поле Header в виде matlab.net.http.HeaderField возразите или вектор HeaderField объекты.

Имена struct поля в виде вектора строки, вектора символов или массива ячеек из символьных векторов.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Разделители, разделяющие элементы массива в виде:

  • Вектор строки, вектор символов или вектор ячейки регулярных выражений, задающих возможные разделители, интерпретированные в порядке, они появляются в векторе.

  • '' — Не анализируйте obj как массив. MATLAB® вставляет кавычки и символы ESC.

  • [] — Не анализируйте obj как массив. MATLAB не вставляет кавычки или символы ESC в элементы массива.

Разделители, разделяющие поля структуры в виде:

  • Вектор строки, вектор символов или вектор ячейки регулярных выражений, задающих возможные разделители, интерпретированные в порядке, они появляются в векторе.

  • '' — Не анализируйте obj как struct. MATLAB вставляет кавычки и символы ESC.

  • [] — Не анализируйте obj как struct. MATLAB не вставляет кавычки или символы ESC в struct значения.

Выходные аргументы

развернуть все

Поле Header Value свойство, возвращенное как вектор строки, struct массив или массив ячеек struct значения.

MATLAB анализирует Value свойство как список разделенных от запятой строк. Каждая строка становится элементом value вектор. Элементом является одно из следующего:

  • struct из name=value пары

  • struct из разделенных от точки с запятой значений

  • представьте в виде строки, если поле не содержит точку с запятой или знак "равно" или, кажется, не структура.

parse преобразует имя каждого struct поле к допустимому идентификатору MATLAB с помощью matlab.lang.makeValidName. Для следующего Value свойство, parse создает имя поля x_p1 от _p1.

Разрешить двойные названия, parse вызовы matlab.lang.makeUniqueStrings. Для следующего Value свойство, parse создает имя поля p11 от дублирующегося имени поля p1.

Если struct поле содержит только Value, но не name=value пара, затем именем поля является Arg_Nзатем порядковое положение поля в struct. Для следующего Value свойство, parse создает имя поля Arg_2 для недостающего имени.

Value Свойство

Выходной аргумент

Описание

"p1=first p2=second"
    p1: "first"
    p2: "second"

parse возвращает struct для name=value пары.

"first;second"
    Arg_1: "first"
    Arg_2: "second"

parse возвращает struct и имена полей значения по умолчанию присвоений для разделенных от точки с запятой значений.

"first second"
"first second"

parse возвращает строку, если поле не содержит точку с запятой или знак "равно" или, кажется, не структура.

"_p1=first p2=second"
    x_p1: "first"
      p2: "second"

parse преобразует недопустимое имя поля _p1 к x_p1.

"p1=first p1=second"
    p1: "first"
    p11: "second"

parse преобразует дублирующееся имя поля p1 к p11.

"p1=first; second"
      p1: "first"
    Arg_2: "second"

parse создает имя поля Arg_2 для недостающего имени для Value second.

"p1=first; p3=(a comment here)"
    p1: "first"
    p3: "(a comment here)"

parse сохраняет комментарии.

Если obj вектор полей заголовка, затем parse метод конкатенирует результаты парсинга каждого из полей в единый массив. Если значения не имеют того же типа, то value массив ячеек.

Value Свойство полевого вектора заголовка

Элемент выходного аргумента массива ячеек

"p1=first p2=second"
x{1} =
 
    p1: "first"
    p2: "second"
"third"
x{2} =
 
third

Примеры

развернуть все

Примите, что вы получаете поле H заголовка в ответе передают с сервера со свойством Value media-type; name1=value1; name2=value2. Чтобы запустить этот пример, создайте переменную H.

H = matlab.net.http.HeaderField('Test-Name','media-type; name1=value1; name2=value2')
H = 

  HeaderField with properties:

     Name: "Test-Name"
    Value: "media-type; name1=value1; name2=value2"

Проанализируйте Value свойство H. MATLAB создает имя поля по умолчанию Arg_1.

var = parse(H)
var = 

  struct with fields:

    Arg_1: "media-type"
    name1: "value1"
    name2: "value2"

Измените значение по умолчанию в больше понятного имени MediaType.

var = parse(H,'MediaType')
var = 

  struct with fields:

    MediaType: "media-type"
        name1: "value1"
        name2: "value2"

Введенный в R2017b