zoukankan      html  css  js  c++  java
  • sharepoint Lists Web service 用法

    概述

    在sharepoint 项目中,后期做数据迁移时,会用到sharepoint的web service来完成把数据导入sharepoint站点的功能。

    web service 名称:

    http://[site]/_vti_bin/Lists.asmx

    我们用它来新增,修改或者删除当前站点特定list 的item操作。

    调用的方法:

    [SoapDocumentMethodAttribute("http://schemas.microsoft.com/sharepoint/soap/UpdateListItems", RequestNamespace="http://schemas.microsoft.com/sharepoint/soap/", ResponseNamespace="http://schemas.microsoft.com/sharepoint/soap/", Use=SoapBindingUse.Literal, ParameterStyle=SoapParameterStyle.Wrapped)] 
    public XmlNode UpdateListItems (
    	string listName,
    	XmlNode updates
    )

    listName:当前站点list的名字。

    操作list的item则通过XmlNode来完成。

    更改普通list里item对应field Name的xml代码:

    <Batch OnError="Continue" ListVersion="1" 
    ViewName="270C0508-A54F-4387-8AD0-49686D685EB2">
       <Method ID="1" Cmd="Update">
          <Field Name="ID">4<Field>
          <Field Name="Field_Name">Value</Field>
       </Method>
       <Method ID="2" Cmd="Update">
          <Field Name="ID" >6</Field>
          <Field Name="Field_Name">Value</Field>
       </Method>
    </Batch>

    新增list里item的xml代码:

    <Batch OnError="Continue" ListVersion="1" 
    ViewName="270C0508-A54F-4387-8AD0-49686D685EB2">
       <Method ID="1" Cmd="New">
          <Field Name='ID'>New</Field>
          <Field Name="Title">Value</Field>
          <Field Name="Date_Column">2007-3-25</Field>
          <Field Name="Date_Time_Column">
             2006-1-11T09:15:30Z</Field>
       </Method>
    </Batch>

    删除list里item的xml代码:

    <Batch OnError="Continue" ListVersion="1" 
    ViewName="270C0508-A54F-4387-8AD0-49686D685EB2">
       <Method ID="1" Cmd="Delete">
          <Field Name='ID'>2</Field>
       </Method>
       <Method ID="2" Cmd="Delete">
          <Field Name='ID'>8</Field>
       </Method>
    </Batch>

    document libraries操作:

    新建文件夹xml的代码:

    <Batch OnError="Continue" PreCalc="TRUE" 
    ListVersion="0" 
    ViewName="{EF2F5A21-0FD0-4654-84ED-112B4F5A48F8}">
       <Method ID="1" Cmd="New">
          <Field Name="ID">New</Field>
          <Field Name="FSObjType">1</Field>
          <Field Name="BaseName">Name</Field>
       </Method>
    </Batch>

    更新文件夹的xml代码:

    <Batch OnError="Continue" PreCalc="TRUE" 
    ListVersion="0" 
    ViewName="{EF2F5A21-0FD0-4654-84ED-112B4F5A48F8}">
       <Method ID="1" Cmd="Update">
          <Field Name="ID">3</Field>
          <Field Name="owshiddenversion">1</Field>
          <Field Name="FileRef">
             http://Server/[sites/][Site/]Shared 
             Documents/Folder</Field>
          <Field Name="FSObjType">1</Field>
          <Field Name="BaseName">Name</Field>
       </Method>
    </Batch>

    删除文件夹xml代码:

    <Batch OnError="Continue" PreCalc="TRUE" 
    ListVersion="0" 
    ViewName="{EF2F5A21-0FD0-4654-84ED-112B4F5A48F8}">
       <Method ID="1" Cmd="Delete">
          <Field Name="ID">4</Field>
          <Field Name="FileRef">
             http://Server/[sites/][Site/]Shared 
             Documents/Folder</Field>
       </Method>
    </Batch>

    更新文件夹里文件的xml代码:

    <Batch OnError="Continue" PreCalc="TRUE" 
    ListVersion="0" 
    ViewName="{EF2F5A21-0FD0-4654-84ED-112B4F5A48F8}">
       <Method ID="1" Cmd="Update">
          <Field Name="ID">2</Field>
          <Field Name="owshiddenversion">1</Field>
          <Field Name="FileRef">
             http://Server/[sites/][Site/]Shared 
             Documents/File</Field>
          <Field Name="BaseName">Name</Field>
       </Method>
    </Batch>

    删除文件夹里文件的xml代码:

    <Batch OnError="Continue" PreCalc="TRUE" 
    ListVersion="0" 
    ViewName="{EF2F5A21-0FD0-4654-84ED-112B4F5A48F8}">
       <Method ID="1" Cmd="Delete">
          <Field Name="ID">3</Field>
          <Field Name="FileRef">
             http://Server/[sites/][Site/]Shared 
             Documents/File</Field>
       </Method>
    </Batch>

    调用方法:

    Web_Reference_Folder.Lists listService = new Web_Reference_Folder.Lists();
    listService.Credentials= System.Net.CredentialCache.DefaultCredentials;
    
    string strBatch = "<Method ID='1' Cmd='Update'>" + 
        "<Field Name='ID'>4</Field>" +
        "<Field Name='Field_Number'>999</Field></Method>" +
        "<Method ID='2' Cmd='Update'><Field Name='ID' >6</Field>" +
        "<Field Name='Field_DateTime'>
            2003-11-11T09:15:30Z</Field></Method>"; 
    
    XmlDocument xmlDoc = new System.Xml.XmlDocument();
    
    System.Xml.XmlElement elBatch = xmlDoc.CreateElement("Batch");
    
    elBatch.SetAttribute("OnError","Continue");
    elBatch.SetAttribute("ListVersion","1");
    elBatch.SetAttribute("ViewName",
        "0d7fcacd-1d7c-45bc-bcfc-6d7f7d2eeb40");
    
    elBatch.InnerXml = strBatch;
    
    XmlNode ndReturn = listService.UpdateListItems("List_Name", elBatch);
    
    MessageBox.Show(ndReturn.OuterXml);

    返回XmlNode代码的格式:

    <Results xmlns="http://schemas.microsoft.com/sharepoint/soap/">
       <Result ID="1,Update">
          <ErrorCode>0x00000000</ErrorCode>
          <z:row ows_ID="4" ows_Title="Title" 
             ows_Modified="2003-06-19 20:31:21" 
             ows_Created="2003-06-18 10:15:58" 
             ows_Author="3;#User1_Display_Name" 
             ows_Editor="7;#User2_Display_Name" ows_owshiddenversion="3" 
             ows_Attachments="-1" 
             ows__ModerationStatus="0" ows_LinkTitleNoMenu="Title" 
             ows_LinkTitle="Title" 
             ows_SelectTitle="4" ows_Order="400.000000000000" 
             ows_GUID="{4962F024-BBA5-4A0B-9EC1-641B731ABFED}" 
             ows_DateColumn="2003-09-04 00:00:00" 
             ows_NumberColumn="791.00000000000000" 
             xmlns:z="#RowsetSchema" />
       </Result>
       <Result ID="2,Update">
          <ErrorCode>0x00000000</ErrorCode>
          <z:row ows_ID="6" ows_Title="Title" 
             ows_Modified="2003-06-19 20:31:22" 
             ows_Created="2003-06-18 19:07:14" 
             ows_Author="2;#User1_Display_Name" 
             ows_Editor="6;#User2_Display_Name" ows_owshiddenversion="4" 
             ows_Attachments="0" ows__ModerationStatus="0" 
             ows_LinkTitleNoMenu="Title" 
             ows_LinkTitle="Title" ows_SelectTitle="6" 
             ows_Order="600.000000000000" 
             ows_GUID="{2E8D2505-98FD-4E3E-BFDA-0C3DEBE483F7}" 
             ows_DateColumn="2003-06-23 00:00:00" 
             ows_NumberColumn="9001.00000000000000" 
             xmlns:z="#RowsetSchema" />
       </Result>
       ...
    </Results>

    取返回值的方法:

                foreach (XmlNode node in nodes)
                {
                    if (node.Name == "rs:data")
                    {
                        for (int i = 0; i < node.ChildNodes.Count; i++)
                        {
                            if (node.ChildNodes[i].Name == "z:row")
                            {
                                
                                string ID = node.ChildNodes[i].Attributes["ows_ID"].Value;
                                string Title = node.ChildNodes[i].Attributes["ows_Title"].Value;
    
                            }
                        }
                    }
                }

    总结

    简单介绍了Lists.UpdateListItems (string listName,XmlNode node)的用法。

  • 相关阅读:
    利用读写锁实现缓存系统
    POJ 1338 Ugly Numbers
    copy算法
    它们的定义iOS双击Home截图按键开关
    以正能量的点!!!
    该公路项目
    ArcSDE当关系查询ArcMap与REST查询结果不一致问题的解决
    【OpenCV新手教程第14】OpenCVHough变换:霍夫变换线,霍夫变换圆汇编
    为了树莓派IIraspberrypi安装emacs+ecb+cedet+session+color-theme+cscope+linum
    事件总线帧---Otto
  • 原文地址:https://www.cnblogs.com/springyangwc/p/2107748.html
Copyright © 2011-2022 走看看