2017-01-23 54 views
0

我想在jdeveloper中創建一個xquery。我被困在它的一小部分。如果我得到一些建議,這將是非常好的。 下面是我停留在Xquery映射特定名稱屬性的值

請求的部分是:

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

我要地圖的反應是有兩個值的單個元素看起來像如下:

<ns2:time ns2:startTime="01:00:00" ns2:endTime="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:time ns2:startTime="{fn:data($Prefereces/variables/variable[@name = 'StartTime']/@value)}" ns2:endTime="{fn:data($Prefereces/variables/variable[@name = 'EndTime']/@value)}"/> 

注意,ns2前綴必須預先定義。

了XQuery謂詞使用括號([condition]),這是從你的嘗試失蹤規定。

+0

非常感謝亞倫。那工作。 – Simran

+0

不客氣。請注意,當變量缺失時,這些屬性將以空值顯示。如果你想避免這種情況,你可以在創建'ns2:time'時指定一個屬性列表,在那裏你可以指定每個屬性,只有當你有他們的數據。 – Aaron

相關問題