xpath2 | node functions

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

ホーム >  関数 > 関数ライブラリレファレンス >

xpath2 | node functions

以下の node 関数が用意されています:

 

lang

lang 関数は(例えば en といった)言語コードが書かれた文字列を受け取ります。コンテキストノードに xml:lang 属性が存在しており、属性値が関数のパラメーターで指定された値にマッチするかがチェックされ、true または false が返されます。

 

FXxpath10

 

上のスクリーンショットについて、以下の点に注意してください:

 

1. ソーススキーマ内にある Language 要素以下には、xml:lang 属性があります。
2.Language 要素がフィルタリングされ、en という値を持った xml:lang 型の要素だけが処理されます(フィルタリングを行うための条件は equal 関数により与えられます)。
3.Language ノードがコンテキストノードとなり、出力ドキュメントでは en 要素が作成されます。
4.lang 関数の出力(true または false)が、出力コンポーネントの en/@exists 属性へ渡されます。関数のパラメーターには en という定数の文字列が与えられます。lang 関数により、コンテキストノード(Language 要素)に en という(関数のパラメーターから得られた)値を持った xml:lang 属性があるかどうかがチェクされます。もしそのような属性値が存在する場合、true が返され、それ以外の場合は false が返されます。

 

 

local-name, name, namespace-uri

local-name、name、namespace-uri 関数により、それぞれローカル名、名前、そして入力ノードの名前空間 URI が返されます。例えば、altova:Products というノードがある場合、Products がローカル名になり、名前が altova:Products、そして名前空間 URI は、altova: というプレフィックスに対応した名前空間の URI (例: http://www.altova.com/mapforce)となります。

 

これらの関数には、それぞれ 2 つの派生があります:

 

入力パラメーターを持たない場合: コンテキストノードに対して関数が適用されます(コンテキストノードのサンプルについては、上にある lang 関数の例を参照ください)。
node 入力パラメーターを持つ場合: 与えられたノードに対して関数が適用されます。

 

これら関数の出力は string 型の文字列となります。

 

 

 

number

入力文字列を数値へ変換します。boolean 型の値も数値へ変換されます。

 

number 関数はノードを入力として受け取り、ノードを原子化(コンテンツの抽出)して、その値を数値へ変換し、変換された値を返します。変換することのできる値のデータ型は boolean、string、その他の数値型だけになります。数値型ではない値(例えば数値では無い文字列)が入力値の場合、NaN (Not a Number) という値が返されます。

 

number 関数には2種類あります:

 

入力パラメーターを持たない場合: コンテキストノードに対して関数が適用されます(コンテキストノードのサンプルについては、上にある lang 関数の例を参照ください)。
node 入力パラメーターを持つ場合: 与えられたノードに対して関数が適用されます。

(C) 2019 Altova GmbH