Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有类似SPWeb.GetListItem的Web服务方法_C#_Sharepoint_Sharepoint 2010 - Fatal编程技术网

C# 是否有类似SPWeb.GetListItem的Web服务方法

C# 是否有类似SPWeb.GetListItem的Web服务方法,c#,sharepoint,sharepoint-2010,C#,Sharepoint,Sharepoint 2010,使用OOB SharePoint 2010 web服务,我需要使用文档的URL更新文档的元数据 URL结构如下所示: [http://web/managedPath/siteCollection/library/folder1/folder2/..../doc.docx] 更新将通过第三方应用程序完成,并且不包含任何SharePoint DLL 使用SharePoint.Net应用程序,我可以使用[spweb.getlistitem(路径)]处理文档。 但是,如何通过web服务执行相同的操作?您

使用OOB SharePoint 2010 web服务,我需要使用文档的URL更新文档的元数据

URL结构如下所示: [http://web/managedPath/siteCollection/library/folder1/folder2/..../doc.docx]

更新将通过第三方应用程序完成,并且不包含任何SharePoint DLL

使用SharePoint.Net应用程序,我可以使用[spweb.getlistitem(路径)]处理文档。
但是,如何通过web服务执行相同的操作?

您可以使用以下web服务列表:

http:///_vti_bin/Lists.asmx

此处的文档:

如何基于CAML查询获取ListItems集合(这将使用Visual Studio生成的代理对象,如果您正在使用其他技术,则需要构建soap请求对象等):

Web\u Reference\u Folder.Lists listService=新建Web\u Reference\u Folder.Lists();
listService.Credentials=System.Net.CredentialCache.DefaultCredentials;
XmlDocument xmlDoc=new System.Xml.XmlDocument();
XmlNode ndQuery=xmlDoc.CreateNode(XmlNodeType.Element,“Query”,“”);
XmlNode ndViewFields=
CreateNode(XmlNodeType.Element,“ViewFields”和“”);
XmlNode ndQueryOptions=
CreateNode(XmlNodeType.Element,“QueryOptions”和“”);
ndQueryOptions.InnerXml=
“假”+
“真实”;
ndViewFields.InnerXml=”
";
ndQuery.InnerXml=”“+
"5000" + 
“2003-07-03T00:00:00”;
尝试
{
XmlNode ndListItems=
GetListItems(“列表名称”,null,ndQuery,
ndViewFields,null,ndQueryOptions,null);
Show(ndListItems.OuterXml);
}
catch(System.Web.Services.Protocols.SoapException-ex)
{
MessageBox.Show(“消息:\n”+示例消息+”\n详细信息:\n”+
ex.Detail.InnerText+
“\n堆栈跟踪:\n”+ex.StackTrace);
}

您可以在以下位置使用列表web服务:

http:///_vti_bin/Lists.asmx

此处的文档:

如何基于CAML查询获取ListItems集合(这将使用Visual Studio生成的代理对象,如果您正在使用其他技术,则需要构建soap请求对象等):

Web\u Reference\u Folder.Lists listService=新建Web\u Reference\u Folder.Lists();
listService.Credentials=System.Net.CredentialCache.DefaultCredentials;
XmlDocument xmlDoc=new System.Xml.XmlDocument();
XmlNode ndQuery=xmlDoc.CreateNode(XmlNodeType.Element,“Query”,“”);
XmlNode ndViewFields=
CreateNode(XmlNodeType.Element,“ViewFields”和“”);
XmlNode ndQueryOptions=
CreateNode(XmlNodeType.Element,“QueryOptions”和“”);
ndQueryOptions.InnerXml=
“假”+
“真实”;
ndViewFields.InnerXml=”
";
ndQuery.InnerXml=”“+
"5000" + 
“2003-07-03T00:00:00”;
尝试
{
XmlNode ndListItems=
GetListItems(“列表名称”,null,ndQuery,
ndViewFields,null,ndQueryOptions,null);
Show(ndListItems.OuterXml);
}
catch(System.Web.Services.Protocols.SoapException-ex)
{
MessageBox.Show(“消息:\n”+示例消息+”\n详细信息:\n”+
ex.Detail.InnerText+
“\n堆栈跟踪:\n”+ex.StackTrace);
}

谢谢你,路易斯。我的希望是找到一种在Web级别更新项目的方法。我能够在SharePoint应用程序或PowerShell中实现这一点。如果没有办法,我将尝试使用Lists.asmx服务。你所说的“我希望找到一种在Web级别更新项目的方法”是什么意思?谢谢luis。我的希望是找到一种在Web级别更新项目的方法。我能够在SharePoint应用程序或PowerShell中实现这一点。如果没有办法,我将尝试使用Lists.asmx服务。您所说的“我希望找到一种在Web级别更新项目的方法”是什么意思?
Web_Reference_Folder.Lists listService = new Web_Reference_Folder.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 = 
    "<IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>" + 
    "<DateInUtc>TRUE</DateInUtc>";
ndViewFields.InnerXml = "<FieldRef Name='Field1' />
    <FieldRef Name='Field2'/>";
ndQuery.InnerXml = "<Where><And><Gt><FieldRef Name='Field1'/>" + 
    "<Value Type='Number'>5000</Value></Gt><Gt><FieldRef Name='Field2'/>" + 
    "<Value Type=
        'DateTime'>2003-07-03T00:00:00</Value></Gt></And></Where>";
try
{
    XmlNode ndListItems = 
        listService.GetListItems("List_Name", null, ndQuery, 
        ndViewFields, null, ndQueryOptions, null);
    MessageBox.Show(ndListItems.OuterXml);
}

catch (System.Web.Services.Protocols.SoapException ex)
{
    MessageBox.Show("Message:\n" + ex.Message + "\nDetail:\n" + 
        ex.Detail.InnerText + 
         "\nStackTrace:\n" + ex.StackTrace);
}