0

我的 XML 数据库只有一个集合(容器),但我不知道文档名称。如何从符合 WHERE 子句的 db 中获取整个 XML 文档?

<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'?

4

2 回答 2

1

只需像在第一个示例中那样使用谓词:

  collection("data1.dbxml")/root[node1/node2/node3 = "My Content"]

您可以将 XQuery 中的谓词视为 SQL 中的 WHERE,而 SELECT 部分则是之前的一切。

于 2012-08-12T12:34:39.907 回答
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'

感谢W3Schools

于 2012-09-25T13:28:13.423 回答