xquery select 关于时间或日期的请求

xquery select request regarding time or date

我想问一下如何才能 select 使用 xquery

只有满足一些时间限制的节点

例如我有这个xml

<SensorList>
    <Sensor>
      <SensorID>1</SensorID>
      <SensorFeature>vox</SensorFeature>
      <SensorTime>20:45:00</SensorTime>
    </Sensor>
    <Sensor>
      <SensorID>4</SensorID>
      <SensorFeature>vox</SensorFeature>
      <SensorTime>14:00:00</SensorTime>
    </Sensor>
    <Sensor>
      <SensorID>2</SensorID>
      <SensorFeature>ax</SensorFeature>
      <SensorTime>12:00:00</SensorTime>
    </Sensor>
  </SensorList>

我只想 select 传感器时间值大于 15:00:00 的传感器节点 那可能吗 如果时间阈值对应于 sensortime 变量,命令将是这样的吗?

doc('vagelisdb/CIDEM.xml')/SensorList/Sensor/SensorTime[SensorTime>'15:00:00']

假设您的传感器时间是有效的 xs:time 数据类型,那么您需要像这样调整您的 XPath:

doc('vagelisdb/CIDEM.xml')/SensorList/Sensor[xs:time(SensorTime) gt xs:time("15:00:00")]

这将 select sensor 个符合您的时间条件的节点。请注意,在您的示例中,您有 /SensorTime[SensorTime 这意味着元素 SensorTime 有一个也称为 SensorTime 的子元素;这与您的示例 XML.

不符

如果你想比较时间,那么你需要 xs:time 构造函数(或强制转换),这样它们就不会作为字符串进行比较。