2017-01-23 2 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

당신을 진심으로 환영합니다. 변수가 누락되면 속성은 빈 값으로 표시됩니다. 이것을 피하려면,'ns2 : time'을 생성 할 때 속성 목록을 지정할 수 있습니다. 여기서 데이터를 가질 때만 각 속성을 지정할 수 있습니다. – Aaron