Xquery 映射特定名称属性的值

Xquery to map the value of a specific name attribute

我正在尝试在 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
                    ()

提前致谢。

你可以使用这个:

<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]) 指定的,您的尝试中缺少它。