XQuery如何使用WHERE查询获取整个xml文档
我有XML数据库,只有一个集合(容器),我不知道文档名。如何从db中获取符合WHERE子句的完整XML文档XQuery如何使用WHERE查询获取整个xml文档,xquery,berkeley-db-xml,Xquery,Berkeley Db Xml,我有XML数据库,只有一个集合(容器),我不知道文档名。如何从db中获取符合WHERE子句的完整XML文档 <root> <node1> <node2> <node3>My Content</node2> </node2> </node1> <root> 它从该节点3返回一个内容 'My C
<root>
<node1>
<node2>
<node3>My Content</node2>
</node2>
</node1>
<root>
它从该节点3返回一个内容
'My Content'
及
它返回2个包含内容的内部节点
<node2><node3>My Content</node3></node2>
我的内容
但是如何获得符合WHERE子句的整个文档(如SELECT*FROM data2.dbxml WHERE node3='My Content'?只需像第一个示例中那样使用谓词:
collection("data1.dbxml")/root[node1/node2/node3 = "My Content"]
您可以将XQuery中的谓词视为SQL中的WHERE,而SELECT部分是前面的所有内容。另一种解决方案……研究后:) 或者当我们知道XMLdoc中节点的深度和节点的名称时
query 'for $x in collection("data1.dbxml")
where $x/*/*/*/node3 = "My Content"
return $x'
谢谢不要引用或咨询W3Schools,他们会传播错误信息。
collection("data1.dbxml")/root[node1/node2/node3 = "My Content"]
query 'for $x in collection("data1.dbxml")
where $x/root/node1/node2/node3 = "My Content"
return $x'
query 'for $x in collection("data1.dbxml")
where $x/*/*/*/node3 = "My Content"
return $x'