ノードの挿入

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  アクション > データの更新 >

ノードの挿入

[ノードの挿入アクション] は 1 つ以上の新しいノードを XPath 式により、ノードの前に挿入の設定のために選択されたノードの前に挿入します。 挿入されたノードは単一ノード、ノードのシーケンス、ツリー全体のフラグメントであることができます。これらの挿入されたノードは、 XQuery の XML コンストラクターを使用して構築されます。次の 7 つすべての XML ノードの型はこの XQuery 構文を用いて構築されることができます: 要素、属性、テキスト、ドキュメント、コメント、処理命令、および名前空間。

MTDInsertNode01

メモ:[ノードの挿入][ノードの追加] の違いは、 [ノードの挿入] はノードを選択されたノードの前に追加し、 [ノードの追加] はノードを選択されたノードの (最初または最後の) 子ノードとして追加します。

 

 

挿入されたノードの場所

新しいノードは、この設定の XPath 式 (ノードの前に挿入) により返されたノードの前に挿入されます。上のスクリーンショットでは、新しいノードが、( XPath 式 Product[1]で選択された) 最初の Product 要素 の前に挿入されています。コンテキストノードは Product の親で Products という名のノードです。もし、述語 [1] が使用されていない場合、 Products のすべての子 Product は、 XPath 式により返され、新しいノードが各 Product 要素の前に挿入されます。

 

 

新規ノード

上のスクリーンショットに表示されるように、新規ノードは直接 XML コンストラクタとして挿入されることができます:

<MyElement-01 myatt="value">Element Content</MyElement-01>

 

これにより、下のスクリーンショットに表示されるように、 MyElement-01 要素を 最初の Product 要素の前に挿入します。

MTDInsertNode02

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{}} 

MTDInsertNode03

 

$MT_TargetNode 変数

子ノードの挿入の前にターゲットされた、ノードの挿入の定義のノードは、自動的に MobileTogether Designer に内蔵された $MT_TargetNode 変数に保存されます。この変数は、下のスクリーンショットで表示されるように、定義の第 2 の XPath 式に使用することができます。

MTDInsertNode04

第 2 の XPath 式は新しいノードの名前の一部としてターゲット ノード ($MT_TargetNode) と同じ名前を使用して、新しいノードを作成します。

element {concat("MyNew"name($MT_TargetNode))} {"Element Content"} 

 

上に定義される [ノードの挿入 アクション] の結果は、下のスクリーンショットに表示されています。

MTDInsertNode05

 


(C) 2019 Altova GmbH