Main Content

parse

クラス: matlab.net.http.HeaderField
名前空間: matlab.net.http

ヘッダー フィールド値を解析して string として返す

説明

value = parse(obj) はヘッダー フィールドの Value プロパティを解析して string を返します。このメソッドを使用して、matlab.net.http.field 名前空間にクラスがないヘッダー フィールドを処理します。この matlab.net.http.HeaderField.displaySubclasses メソッドを使用して名前空間のクラスを表示します。名前空間のクラスについては、対応する convert メソッドを使用して値を解析します。

解析ルールは Internet Engineering Task Force (IETF®) Web サイトの RFC 7230 Message Syntax and Routing のセクション 3.2.4 ~ 3.2.6 に基づいており、複数の値を解釈するように拡張されています。

value = parse(obj,fields) は名前のない struct フィールドに使用する名前を指定します。

struct の N 番目のフィールドに名前がない場合、対応する N 番目の名前は fields に存在し、空ではありません。これは Arg_N の代わりに使用されます。この構文を使用すると、返される value が少なくとも fields の長さと同じ数のフィールドをもつ struct (または struct オブジェクトのベクトル) になるように強制されます。通常、このパターンはトークンで始まり属性のペアが後に続くヘッダー フィールドで見られます。

value = parse(___,Name,Value) は 1 つ以上の区切り記号を指定します。既定の区切り記号はコンマとセミコロンです。前述の構文の入力引数のいずれかを使用できます。

入力引数

すべて展開する

ヘッダー フィールド。matlab.net.http.HeaderField オブジェクトまたは HeaderField オブジェクトのベクトルとして指定します。

struct フィールドの名前。string ベクトル、文字ベクトル、または文字ベクトルの cell 配列として指定します。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

配列要素を区切る区切り記号。次として指定します。

  • 使用可能な区切り記号を指定する string ベクトル、文字ベクトルまたは正規表現の cell ベクトル。ベクトル内の順序で解釈されます。

  • ''obj を配列として解析しません。MATLAB® は引用符とエスケープ文字を挿入します。

  • []obj を配列として解析しません。MATLAB は引用符もエスケープ文字も配列要素に挿入しません。

構造体フィールドを区切る区切り記号。次として指定します。

  • 使用可能な区切り記号を指定する string ベクトル、文字ベクトルまたは正規表現の cell ベクトル。ベクトル内の順序で解釈されます。

  • ''objstruct として解析しません。MATLAB は引用符とエスケープ文字を挿入します。

  • []objstruct として解析しません。MATLAB は引用符もエスケープ文字も struct 値に挿入しません。

出力引数

すべて展開する

ヘッダー フィールドの Value プロパティ。string ベクトル、struct 配列または struct 値の cell 配列として返されます。

MATLAB は Value プロパティをコンマ区切り文字列のリストとして解析します。各 string は value ベクトルの要素になります。要素は次のいずれかになります。

  • name=value ペアの struct

  • セミコロン区切り値の struct

  • フィールドにセミコロンまたは等号が含まれていない場合、またはフィールドが構造体として認識されない場合、string。

parsematlab.lang.makeValidName を使って、各 struct フィールドの名前を有効な MATLAB 識別子に変換します。次の Value プロパティについては、parse_p1 からフィールド名 x_p1 を作成します。

parsematlab.lang.makeUniqueStrings を呼び出して重複名を解決します。次の Value プロパティについては、parse は重複フィールド名 p1 からフィールド名 p11 を作成します。

struct フィールドに Value のみが含まれ、name=value ペアは含まれていない場合、フィールド名は Arg_N になります。Nstruct のフィールドの順序位置です。次の Value プロパティについては、parse は欠損名に対してフィールド名 Arg_2 を作成します。

Value プロパティ

出力引数

説明

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

parsename=value ペアの struct を返します。

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

parsestruct を返し、既定フィールド名をセミコロン区切り値に割り当てます。

"first second"
"first second"

parse は、フィールドにセミコロンまたは等号が含まれていない場合、またはフィールドが構造体として認識されない場合、string を返します。

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

parse は無効なフィールド名 _p1x_p1 に変換します。

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

parse は重複フィールド名 p1p11 に変換します。

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

parse は、Value second の欠損名に対してフィールド名 Arg_2 を作成します。

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

parse はコメントを保持します。

obj がヘッダー フィールドのベクトルの場合、parse メソッドは各フィールドの解析結果を 1 つの配列に連結します。値が同じ型ではない場合、value は cell 配列になります。

ヘッダー フィールド ベクトルの Value プロパティ

cell 配列の出力引数の要素

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

すべて展開する

Value プロパティが media-type; name1=value1; name2=value2 のヘッダー フィールド H を、サーバーから応答メッセージで受信したと仮定します。この例を実行するために、変数 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"

HValue プロパティを解析します。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 で導入