使用SharePoint的Lists.GetListItems Web服务方法检索特定文档版本

时间:2012-05-09 17:50:09

标签: sharepoint-2010

假设我在SharePoint 2010网站中有同一文档的三个版本。如何使用Web服务检索第二个版本的元数据?

我知道我可以使用以下SOAP请求检索最新版本

<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
    <GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
        <listName>Shared Documents</listName>
        <viewName></viewName>
        <query>
            <Query><Where><Eq><FieldRef Name="FileRef"/>
            <Value Type="Text">https://mysite.com/sites/DocLib026/Shared Documents/_mytest5.doc</Value></Eq></Where></Query>
        </query>
        <rowLimit>200</rowLimit>
    </GetListItems>
</S:Body></S:Envelope>

如何修改此项以便我可以检索任何现有版本?

1 个答案:

答案 0 :(得分:0)

使用Sharepoint对象模型,一旦我使用了找到的代码here

using (SPSite site = new SPSite(“http://SharePointSite”))
{
using (SPWeb web = site.OpenWeb())
{
 SPList docs = web.Lists["Mydocumentlib"];
  foreach (SPFile file in docs.RootFolder.Files)
 {
  Console.WriteLine(“File {0} has next version {1}. Version History:”, file.Url,           file.UIVersionLabel);
  foreach (SPFileVersion v in file.Versions.Cast().Reverse())
  {
    Console.WriteLine(” Version {0} checked in at {1} with this comment: ‘{2}’”,  v.VersionLabel, v.Created, v.CheckInComment);
  }
 }
}}

只需调整foreach方法,然后在那里做一些神奇的东西。