[ノードの挿入アクション] は 1 つ以上の新しいノードを XPath 式により、ノードの前に挿入の設定のために選択されたノードの前に挿入します。挿入されたノードは単一ノード、ノードのシーケンス、ツリー全体のフラグメントであることができます。これらの挿入されたノードは、 XQuery の XML コンストラクターを使用して構築されます。次の 7 つすべての XML ノードの型はこの XQuery 構文を用いて構築されることができます:要素、属性、テキスト、ドキュメント、コメント、処理命令、および名前空間。
メモ: | [ノードの挿入] と [ノードの追加] の違いは、 [ノードの挿入] はノードを選択されたノードの前に追加し、 [ノードの追加] はノードを選択されたノードの (最初または最後の) 子ノードとして追加します。 |
新しいノードは、この設定の XPath 式 (ノードの前に挿入) により返されたノードの前に挿入されます。上のスクリーンショットでは、新しいノードが、( XPath 式 Product[1]で選択された) 最初の Product 要素 の前に挿入されています。コンテキストノードは Product の親で Products という名のノードです。もし、述語 [1] が使用されていない場合、 Products のすべての子 Product は、 XPath 式により返され、新しいノードが各 Product 要素の前に挿入されます。
上のスクリーンショットに表示されるように、新規ノードは直接 XML コンストラクタとして挿入されることができます:
<MyElement-01 myatt="value">Element Content</MyElement-01>
これにより、下のスクリーンショットに表示されるように、 MyElement-01 要素を 最初の Product 要素の前に挿入します。
XPath ロケーター式を使用して、ページのページソースからノード (とその全ての子孫) を挿入することができます。例:
$XML2/Row
XQuery の計算されたノードコンストラクタも使用することができます。例えば:
element MyElement-01 {xs:string("Element Content")}
attribute myatt{"value"}
下の XPath 式は、下のスクリーンショットに表示されるように、最初の Product 要素の上に挿入されている出力を作成します。
<MyElement-01 myatt="value">Element Content</MyElement-01>,
element MyElement-02 {"Element Content"},
element MyElement-03 {element MyElement-04 {"Element Content"}},
element MyElement-05{attribute myatt{"value"}, element MyElement-06{}}
追加されたノードがプロジェクトのページソースから取得された場合、追加されたノードの削除を現在の場所のチェックボックスを選択してノードを元の場所から削除することができます。新しいノードが直接構成される場合、つまりプロジェクトのページソースを参照しないで構成される場合、このオプションの選択はページソースに影響を与えません。
ノードの追加の定義内では、挿入の前に自動的に MobileTogether Designer に内蔵された $MT_TargetNode 変数に保存されます。この変数は、下のスクリーンショットで表示されるように、定義の第 2 の XPath 式に使用することができます。
第 2 の XPath 式は新しいノードの名前の一部としてターゲット ノード ($MT_TargetNode) と同じ名前を使用して、新しいノードを作成します。
element {concat("MyNew", name($MT_TargetNode))} {"Element Content"}
上に定義される [ノードの挿入 アクション] の結果は、下のスクリーンショットに表示されています。