0

コレクション(コンテナー)が1つしかない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()'

そのノードからコンテンツを返します3

'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 に答える