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 не имеет имени, соответствующее N-е имя в fields существует и не пуст. Используется вместо Arg_N. Использование этого синтаксиса заставляет возвращать value быть struct (или вектор struct объекты) с по крайней мере таким количеством полей, как длина fields. Обычно этот шаблон встречается в полях заголовка, которые начинаются со лексемы, за которой следуют пары атрибутов.

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

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

расширить все

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

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

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

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

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

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

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

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

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

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

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

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

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

расширить все

Поле заголовка Value свойство, возвращенное как строковый вектор, a 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.

Если a struct поле содержит только Value, но не name=value пара, затем имя поля Arg_N. The 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"

Признаки

Sealedtrue

Чтобы узнать об атрибутах методов, см. «Атрибуты метода».

Введенный в R2016b