SharePoint Web Service系列:獲取文檔的屬性信息

 在很多情況下,我們希望外部的應用可以得到位於SharePoint文檔庫中的文檔信息。這時不妨試試通過調用WSS的Web服務來完成。

  下面的示例代碼完成了獲取ID爲1的文檔(在文檔庫TestDL1中)的相對URL 和作者信息。 

  那ID是從哪裏獲取的呢?我想大家一定有很多方法啦。比如,文檔庫事件。

      LabDb.ListslistService=newLabDb.Lists();
      listService.Credentials=System.Net.CredentialCache.DefaultCredentials;
     
      XmlDocumenttxd=newXmlDocument();
      txd.LoadXml("<Query><Where><Eq><FieldRefName="ID"/><ValueType="Counter">1</Value></Eq></Where></Query>");
      XmlNodendQuery=txd.SelectSingleNode("Query");
      txd.LoadXml("<ViewFields><FieldRefName="ID"/><FieldRefName="FileRef"/><FieldRefName="Author"/></ViewFields>");
      XmlNodendViewFields=txd.SelectSingleNode("ViewFields");
      stringFileRef="";
      stringAuthor="";
      try
      {
        XmlNodendReturn=listService.GetListItems("TestDL1",null,ndQuery,ndViewFields,null,null);
        XmlNamespaceManagernsmgr=newXmlNamespaceManager(ndReturn.OwnerDocument.NameTable);
        nsmgr.AddNamespace("s","uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882");
        nsmgr.AddNamespace("dt","uuid:C2F41010-65B3-11d1-A29F-00AA00C14882");
        nsmgr.AddNamespace("rs","urn:schemas-microsoft-com:rowset");
        nsmgr.AddNamespace("z","#RowsetSchema");
        FileRef=ndReturn.SelectSingleNode("rs:data/z:row",nsmgr).Attributes["ows_FileRef"].Value;
        FileRef=FileRef.Substring(FileRef.IndexOf("#")+1);
        Author=ndReturn.SelectSingleNode("rs:data/z:row",nsmgr).Attributes["ows_Author"].Value;
        Author=Author.Substring(Author.IndexOf("#")+1);
        Console.WriteLine(FileRef);
        Console.WriteLine(Author);
     }
      catch{}

  其中的關鍵是:

  1、Query的編寫

  2、ViewFields的編寫(可選,也可以給null,這樣將顯示所有)

  3、XmlNamespace的添加

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章