我的XML数据库只有一个集合(容器),我不知道文档名称。如何从db获取整个XML文档,它符合WHERE子句?
<root>
<node1>
<node2>
<node3>My Content</node2>
</node2>
</node1>
<root>
当我有疑问时
query 'collection("data1.dbxml")/root/node1/node2[node3 = "My Content"]/string()'
它返回该node3的内容
'My Content'
和
query 'collection("data1.dbxml")/root/ode1/node2/node3'
它返回2个内容节点,内容为
<node2><node3>My Content</node3></node2>
但是如何获得符合这个WHERE子句的整个文档(就像SELECT * FROM data2.dbxml WHERE node3 ='My Content'?
答案 0 :(得分:1)
只需像第一个例子中那样使用谓词:
collection("data1.dbxml")/root[node1/node2/node3 = "My Content"]
您可以将XQuery中的谓词视为SQL中的WHERE,SELECT部分就是以前的所有内容。
答案 1 :(得分:0)
另一项决议......在学习之后:)
query 'for $x in collection("data1.dbxml")
where $x/root/node1/node2/node3 = "My Content"
return $x'
或当我们知道XMLdoc中的节点深度和节点名称
时query 'for $x in collection("data1.dbxml")
where $x/*/*/*/node3 = "My Content"
return $x'