2017-01-23 18 views
0

jdeveloperでxqueryを作成しようとしています。私はそれの小さな部分で立ち往生しています。私はいくつかの提案を得ることは素晴らしいだろう。 以下は、私が特定の名前属性の値をマップするXquery

要請で立ち往生しています一部であることは次のとおりです。

<ns2:time ns2:startTime="01:00:00" ns2:endTime="05:00:00"/> 

`<variables> 
    <variable name="StartTime" value="01:00:00"/> 
<variable name= "EndTime" value="05:00:00"/> 

私はマップする応答は二つの値を持つ単一の要素は以下のように見えています

以下は私が試したxqueryです。しかし、私は両方の場所で開始時間を得るだけです。私は、要求の名前の値を見ている値を正しく割り当てることができる何らかの方法が必要です。

if (fn:data($Prefereces/ns1:variables/ns1:variable/@name="StartTime")or fn:data($Prefereces/ns1:variables/ns1:variable/@name="EndTime")) then 
        (<ns2:time ns2:startTime="{fn:data($Prefereces/ns1:variables/ns1:variable/@value)}" ns2:endTime="{fn:data($Prefereces/ns1:variables/ns1:variable/@value)}"> 
        </ns2:time>) 
       else 
        () 

ありがとうございます。

答えて

1

あなたはこれを使用することができます:ns2プレフィックスは、事前に定義する必要があり

<ns2:time ns2:startTime="{fn:data($Prefereces/variables/variable[@name = 'StartTime']/@value)}" ns2:endTime="{fn:data($Prefereces/variables/variable[@name = 'EndTime']/@value)}"/> 

注こと。

のXQueryの述語は、あなたの試行から欠落していたブラケット([condition])を、使用して指定されています。

+0

ありがとうございました。それはうまくいった。 – Simran

+0

ようこそ。変数が見つからない場合、属性は空の値で表示されます。 time'、あなたは自分のデータを持っている場合にのみ、あなたはそれぞれの属性を指定することができます。あなたはそれを避けたい場合は、 'NS2を作成するとき、あなたは属性のリストを指定することができます。 – Aaron

関連する問題