如何通过xquery过滤获取整个xml文件而不仅仅是与过滤相对应的节点?

时间:2015-07-27 09:35:18

标签: filtering xquery basex

是否可以使用xquery中的过滤来获取聚合的xml文件?

我有以下xquery命令

xquery declare default element namespace  \"http://www.satisfactory-project.eu/XMLSchema/v1.0/common\"; collection('vagelisdb')/SensorInfo/Position[x>4]

我得到了过滤后的节点,但它们只包含了xml的一部分,而不是整个xml。

<Position xmlns="http://www.satisfactory-project.eu/XMLSchema/v1.0/common"><x>10</x><y>12</y><z>20</z><Unit>Meters</Unit></Position>

我想要

<?xml version="1.0" encoding="UTF-8"?><SensorInfo xmlns="http://www.satisfactory-project.eu/XMLSchema/v1.0/common">
<ID>sensor_1</ID>
<Type>DepthCamera</Type>
<Position>
    <x>10</x>
    <y>12</y>
    <z>20</z>
    <Unit>Meters</Unit>
</Position>
<Space>Edw</Space>

1 个答案:

答案 0 :(得分:1)

当然,您只需要将文档用作谓词上下文节点而不是该元素:

collection('vagelisdb')[SensorInfo/Position/x>4]