2012-08-10 66 views
0

我有隻有一個集合(容器)的XML數據庫,我不知道文檔名稱。如何從db中獲得符合WHERE子句的整個XML文檔?XQuery如何獲得與WHERE查詢整個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 ='我的內容'?

回答

1

只需使用一個謂語,你在第一個例子:

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

你可以認爲XQuery中謂語在SQL WHERE和SELECT部分​​是之前的一切。

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

+1

請勿引用或諮詢W3Schools,他們知道傳播錯誤信息。 – nalply 2012-09-25 17:32:30