SharePoint 2007
调用自带 WebService 操作 List
SharePoint 2007 调用自带 WebService 操作 List
调用自带 WebService 操作 List – 霖雨
BOLG URL -- http://www.cnblogs.com/jianyus/
1
SharePoint 2007
简述:在 SharePoint 的使用中,经常需要进行系统集成这样的操作,我们作为 SharePoint 开
发,就需要给其他系统提供接口,而SharePoint提供的WebService就很好的提供了这样的功能,
我们简单了解下,通过 SharePoint 提供 WebService 对列表进行操作
步骤:
1、 首先,新建一个控制台程序,添加 WebService 的引用
地址 http://<site>/_vti_bin/Lists.asmx
<site>为网站的地址,包括端口号
2、引用 - 右键 - 添加服务引用(如图 1)– 高级 – 添加 Web 引用 – URL 处填写 WebService 地址
(如图 2)
(图 1)
调用自带 WebService 操作 List – 霖雨
BOLG URL -- http://www.cnblogs.com/jianyus/
2
SharePoint 2007
(图 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);
}
调用自带 WebService 操作 List – 霖雨
BOLG URL -- http://www.cnblogs.com/jianyus/
3
SharePoint 2007
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)
{
}
调用自带 WebService 操作 List – 霖雨
BOLG URL -- http://www.cnblogs.com/jianyus/
4
SharePoint 2007
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("操作成功");
调用自带 WebService 操作 List – 霖雨
BOLG URL -- http://www.cnblogs.com/jianyus/
5
SharePoint 2007
8、 修改 ListItem 后的结果
9、 以上是几个操作 List 的 WebService 的示例,自己也是参考微软的示例代码,读取出来的
信息是 Xml,然后在 Xml 中获取我们需要的信息就可以了。
Lists 的 SDK 地址:
http://msdn.microsoft.com/zh-cn/library/websvclists.lists_methods(v=office.12).aspx