not-exists

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

ホーム >  関数 > 関数ライブラリレファレンス > core | sequence functions >

not-exists

ノードが存在する場合 false を返します。

 

fn-notexist

 

以下の例では、not-exists 関数を使用することでソースファイルには存在しないノードのマッピングを行います。

 

このマッピングでは、以下の処理を行います

 

2 つのソース XML ファイルにあるノードを比較します。
2 番目のソース XML ファイルに存在しないノードを、 1 番目のソース XML ファイルからフィルタリングします。
見つからないノードとそのコンテンツだけをターゲットファイルへマッピングします。

 

miss-node1

 

以下に 2 つの XML インスタンスを示します。以下の点が互いに異なっています:

 

左側にある a.xml では、b.xml には無い <b kind="3"> が含まれています。
右側にある b.xml では、a.xml には無い <b kind="4"> が含まれています。

 

miss-node1a miss-node1b

 

equal 関数により、両方の XML ファイルにある kind 属性が比較され、結果がフィルターコンポーネントへ渡されます。
non-exists 関数が最初のフィルターの後に配置されており、各ソースファイルで見つからないノードを選択します。
2 番目のフィルターは、a.xml から得られた見つからないノードとそのデータだけを渡すためだけに使用されます。

 

マッピングにより、b.xml には存在しないノード <b kind="3"> がターゲットコンポーネントへ渡されます。

 

miss-node1c


(C) 2019 Altova GmbH