Sharepoint 2010:通过 SOAP 请求获取文档集

Sharepoint 2010: Get Document Set via SOAP Request

我需要在 Sharepoint 2010 上通过 SOAP 获取文档集的内容。

这是 GetListItems-响应的一部分:

<z:row 
    ows_LinkFilename="Test DocSet"
    ows_Modified="2013-11-15 17:30:22"
    ows_Editor="1;#Intranetadmin"
    ows__ModerationStatus="0"
    ows__Level="1"
    ows_UniqueId="7;#{F9F49A78-A1BA-4316-BA7C-AE304D544C6C}"
    ows_FSObjType="7;#1" ows_Created_x0020_Date="7;#2013-10-14 11:11:14"
    ows_ProgId="7;#SharePoint.DocumentSet"
    ows_FileLeafRef="7;#Test DocSet"
    ows_PermMask="0x7fffffffffffffff"
    ows_HTML_x0020_File_x0020_Type="SharePoint.DocumentSet"
    ows_FileRef="7;#reporting/Test" 
    ows_MetaInfo="
        7;#vti_contentversionisdirty:BW|false
        vti_isexecutable:BW|false
        vti_contenttypeorder:SW|0x010100CE55C0F978D1DA439D9CF7D69B0CDFCCEB002E78DAF3B5EFFC459F2B05090785C2EF,0x0101008A74604B2254FB4F93E4106069B3B73D
        vti_folderitemcount:IW|2
        vti_hassubdirs:BW|false
        _dlc_DocId:SW|INTRA-90-7
        vti_listname:SW|{27B8314C-574F-4C65-B728-9343A185D1B3}
        vti_listservertemplate:IW|101
        vti_dirlateststamp:TW|15 Nov 2013 16:25:17 -0000
        _dlc_DocIdItemGuid:SW|f9f49a78-a1ba-4316-ba7c-ae304d544c6c
        _dlc_DocIdUrl:SW|http://test.sharepoint.de/reporting/Test/_layouts/DocIdRedir.aspx?ID=INTRA-90-7, INT-12-6
        docset_LastRefresh:SW|11/15/2013 16:30:21
        vti_metainfoversion:IW|5
        vti_foldersubfolderitemcount:IW|0
        vti_modifiedby:SR|Test\intranetadmin
        vti_isscriptable:BW|false
        vti_listbasetype:IW|1
        vti_isbrowsable:BW|true
    "
    ows_Last_x0020_Modified="7;#2016-06-17 10:43:27"
    ows_ID="7"
    ows_owshiddenversion="5"
/>

如何获取此文档集的内容?

要将结果限制到特定文件夹,请将 "Folder" 元素添加到 queryOptions 参数:

文档集是一种文件夹。如果您知道文件夹的名称,则可以通过在 GetListItems 方法调用的 queryOptions 参数的 Folder 元素中指定文件夹名称来检索文件夹中的所有文档。

<QueryOptions>
    <Folder>LibraryPath/Test DocSet</Folder>
</QueryOptions>

参考 Lists.GetListItems method documentation:

queryOptions

An XML fragment in the following form that contains separate nodes for the various properties of the SPQuery object, and that can be assigned to a System.Xml.XmlNode object.

...

The following table shows the elements that can be used in the Collaborative Application Markup Language (CAML) fragment passed through the queryOptions parameter.

...

  • Element: Folder
  • Description: Specifies a URL used to filter document library items for items in the specified folder. This element is optional, and its default value is an empty string.

示例 SOAP 请求 XML:

这是您的完整请求消息 XML 的示例:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope 
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
  xmlns:m="http://schemas.microsoft.com/sharepoint/soap/">
<soap:Header>
</soap:Header>
<soap:Body>
  <m:GetListItems>
    <m:listName>{the-guid-of-your-list-here}</m:listName>
    <m:queryOptions>
      <QueryOptions>
        <Folder>LibraryPath/Folder Name Here</Folder>
      </QueryOptions>
    </m:queryOptions>
  </m:GetListItems>
</soap:Body>
</soap:Envelope>

再举一个例子,如果在您的站点资源库(内部名称为 SiteAssets)中,您有一个名为 Wiki Pages 的文件夹和一个名为 Pictures 的子文件夹,您可以通过为 queryOptions 参数指定以下内容来查询该子文件夹:

<m:queryOptions>
  <QueryOptions>
    <Folder>SiteAssets/Wiki Pages/Pictures</Folder>
  </QueryOptions>
</m:queryOptions>