我想问一下如何使用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>
我想只选择SensorTime值大于15:00:00的传感器节点 那可能吗 如果时间阈值对应于sensortime变量,那么命令是这样的吗?
doc('vagelisdb/CIDEM.xml')/SensorList/Sensor/SensorTime[SensorTime>'15:00:00']
答案 0 :(得分:4)
假设您的传感器时间是有效的xs:time
数据类型,那么您需要像这样调整XPath:
doc('vagelisdb/CIDEM.xml')/SensorList/Sensor[xs:time(SensorTime) gt xs:time("15:00:00")]
这将选择符合您时间条件的sensor
个节点。请注意,在您的示例中,您有/SensorTime[SensorTime
,这意味着元素SensorTime
有一个名为SensorTime
的孩子;这与您的示例XML不匹配。
如果你想比较时间,那么你需要xs:time
构造函数(或强制转换),这样就不会将它们作为字符串进行比较。