0

我正在尝试在 jdeveloper 创建一个 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
                    ()

提前致谢。

4

1 回答 1

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]) 指定的,而您的尝试中没有这些谓词。

于 2017-01-23T15:58:46.213 回答