aa13142023 发表于 2015-9-24 12:00:19

SharePoint 调用 WebService操作List小记

  简述:在SharePoint的使用中,经常需要进行系统集成这样的操作,我们作为SharePoint开发,就需要给其他系统提供接口,而SharePoint提供的WebService就很好的提供了这样的功能,我们简单了解下,通过SharePoint提供WebService对列表进行操作
  步骤:
  1、 首先,新建一个控制台程序,添加WebService的引用
  地址http://<site>/_vti_bin/Lists.asmx
  <site>为网站的地址,包括端口号
  2、引用 - 右键 - 添加服务引用(如图1)– 高级 – 添加Web引用 – URL处填写WebService地址(如图2)

  (图1)

  (图2)
  3、 获取List信息
  try
  {
  WebServices1.Lists listService = new GetListTest.WebServices1.Lists();
  listService.Credentials = System.Net.CredentialCache.DefaultCredentials;
  XmlNode ndLists = listService.GetList("Test");//参数列表名,String类型
  Console.Write(ndLists.OuterXml);
  }
  catch (Exception ex)
  {
  Console.Write(ex.Message);
  }
  4、 获取List信息结果

  5、 获取ListItem信息
  //获取ListItem信息
  WebServices1.Lists listService = new GetListTest.WebServices1.Lists();
  listService.Credentials = System.Net.CredentialCache.DefaultCredentials;
  XmlDocument xmlDoc = new System.Xml.XmlDocument();
  XmlNode ndQuery = xmlDoc.CreateNode(XmlNodeType.Element, "Query", "");
  XmlNode ndViewFields = xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", "");
  XmlNode ndQueryOptions = xmlDoc.CreateNode(XmlNodeType.Element, "QueryOptions", "");
  ndQueryOptions.InnerXml = ""; //Query设置
  ndViewFields.InnerXml = ""; //视图设置
  ndQuery.InnerXml = ""; //Caml语句
  try
  {
  XmlNode ndListItems = listService.GetListItems("Test", null, ndQuery, ndViewFields, "1", ndQueryOptions, null); //获取列表内容
  Console.Write(ndListItems.OuterXml); //输出获取的Xml内容
  }
  catch (System.Web.Services.Protocols.SoapException ex)
  {
  }
  6、 获取ListItem信息结果

  7、 修改ListItem项
  WebServices1.Lists listService = new WebServices1.Lists();
  listService.Credentials = System.Net.CredentialCache.DefaultCredentials;
  string strBatch = "<Method ID='1' Cmd='Update'>" +//cmd参数,Update为更新,还有New、Delete
  "<Field Name='ID'>1</Field>" +//Name属性为字段名称,里面为字段值
  "<Field Name='Title'>这个已经被修改了</Field></Method>";
  XmlDocument xmlDoc = new System.Xml.XmlDocument();
  System.Xml.XmlElement elBatch = xmlDoc.CreateElement("Batch");
  elBatch.InnerXml = strBatch;
  XmlNode ndReturn = listService.UpdateListItems("Test", elBatch);//第一个参数是列表名
  Console.Write("操作成功");
  8、修改ListItem后的结果

  8、 以上是几个操作List的WebService的示例,自己也是参考微软的示例代码,读取出来的信息是Xml,然后在Xml中获取我们需要的信息就可以了。
  Lists的SDK地址: http://msdn.microsoft.com/zh-cn/library/websvclists.lists_methods(v=office.12).aspx
  ******************************************************************************
  作者:霖雨
  出处:http://www.cnblogs.com/jianyus
  本文版权归 霖雨和博客园共有,欢迎转载,但请注明出处。
页: [1]
查看完整版本: SharePoint 调用 WebService操作List小记