2011-06-15 83 views
10

我從CXF調用lists.asmx webservice。 以下soap調用不會從列表子文件夾返回文件。它返回文件夾1,文件夾2和file1.pdfSharePoint List.getListItems WebService以遞歸方式返回子文件夾內容

Shared Documents 
    folder1 
    file2.docx 
    file3.pdf 
    folder2 
    sub-folder1 
     file5.pdf 
    file4.pdf 
    file1.pdf 

SOAP調用

POST /_vti_bin/lists.asmx HTTP/1.1 Accept-Encoding: gzip,deflate 

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:soap1="http://schemas.microsoft.com/sharepoint/soap/"> 
    <soap:Header/> 
    <soap:Body> 
     <soap1:GetListItems> 
     <soap1:listName>Shared Documents</soap1:listName> 
     <queryOptions> 
     <QueryOptions> 
      <IncludeMandatoryColumns>TRUE</IncludeMandatoryColumns> 
      <ViewAttributes Scope="RecursiveAll"/> 
      <DateInUtc>TRUE</DateInUtc>    
     </QueryOptions> 
     </queryOptions> 
     </soap1:GetListItems> 
    </soap:Body> 
</soap:Envelope> 

如何從folder1中獲取文件的任何線索,folder3和子文件夾1中包含的結果? 如果列表Web服務不能這樣做,是否有其他服務/方法?

附加信息: 還有另一種webservice,SiteData (_vti_bin/sitedata.asmx)。它有一個類似的方法(getListItems),並返回所有文件只有列表名稱,沒有額外的參數。問題是我無法弄清楚如何/在哪裏指定頁面參數,因爲有沒有queryOptions輸入元素像在列表中網絡服務。

<soap1:strListName>?</soap1:strListName> 
<soap1:strQuery>?</soap1:strQuery> 
<soap1:strViewFields>?</soap1:strViewFields> 
<soap1:uRowLimit>?</soap1:uRowLimit> 

回答

13

它可以遞歸獲取列表的內容,使用<ViewAttributes Scope="RecursiveAll"/> elment。 在我的肥皂信封中有一個silly錯誤。 queryOptions元素沒有名稱空間。我修正了以下文字。

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:soap1="http://schemas.microsoft.com/sharepoint/soap/"> 
    <soap:Header/> 
    <soap:Body> 
     <soap1:GetListItems> 
     <soap1:listName>Shared Documents</soap1:listName> 
     <**soap1:**queryOptions> 
     <QueryOptions> 
      <IncludeMandatoryColumns>TRUE</IncludeMandatoryColumns> 
      <ViewAttributes Scope="RecursiveAll"/> 
      <DateInUtc>TRUE</DateInUtc>    
     </QueryOptions> 
     </**soap1:**queryOptions> 
     </soap1:GetListItems> 
    </soap:Body> 
</soap:Envelope> 

順便說一句,有一個偉大的工具,U2U CAML Builder來建立SharePoint CAML。我希望在幾個星期前發現。

+0

我得到的響應代碼:400,響應消息:錯誤的請求,當我添加**肥皂1:**線..我錯過了什麼? – 2014-04-16 13:07:04

相關問題