PHPCompute ノードを使用して、メッセージ・ツリー内に新規エレメントを作成します。
以下のいくつかの方法で、メッセージ・ツリー内に新規エレメントを作成できます。
- MbsElement addElement メソッドを使用する。 デフォルトでは、これはエレメントを現行エレメントの最後の子として作成します。 このメソッドには、以下のパラメーターがあります。
- name
- value
- namespace
- type (オプション)
- position (オプション)
type パラメーターは、パーサー固有タイプの新規ノードであり、これは XML パーサーの場合は XML エレメント・タイプがデフォルトになります。 type パラメーターの値の完全なリストは、次を参照してください。
position パラメーターは、以下の値の 1 つを持つことができます。
- MB_FIRST_CHILD
- MB_LAST_CHILD
- MB_NEXT_SIBLING
- MB_PREVIOUS_SIBLING
- パス構文を使用する。 代入式の左側のエレメントは、パス内で参照されるときに (それらが存在していなければ) 作成されます。 例えば、以下のコードは XMLNSC ツリー内のエレメントをナビゲートし、必要な場合はそれらを作成します。
$output_assembly->XMLNSC->doc->folder->item = 'book';
- MbsElement コンストラクターを使用する。 サブツリー (メッセージの一部) を作成して戻す PHP 関数を作成するには、エレメントをインスタンス化し、(前述の 2 つのメソッドのいずれかを使用して) 特別なエレメントを作成し、結果を戻します。 次いで結果を出力メッセージに割り当てます。 以下に例を示します。
$output_assembly->XMLNSC->doc->part = create_subtree();
function create_subtree() {
$element = new MbsElement();
$element->folder->item = 'some value';
return $element;
}
または、MbsElement addElementFromBitstream メソッドを使用して、構文解析されていないビット・ストリームを含むストリングからエレメント・ツリーを作成することもできます。 このメソッドは、どのパーサーを使用するかに関する決定を実行時まで延期するために使用します。