从列表中检索所有项目的正确SharePoint CAML查询是什么?

从列表中检索所有项目的正确SharePoint CAML查询是什么?,sharepoint,caml,suds,Sharepoint,Caml,Suds,出于某种原因,我尝试使用CAML和带有Python suds库的web服务查询SharePoint 2007。这个电话看起来像: listItems = client.service.GetListItems( listName, '', Raw('<Query />'), viewFields, 0, Raw("""<QueryOptions> <IncludeMandatoryColumns>TRUE</Include

出于某种原因,我尝试使用CAML和带有Python suds库的web服务查询SharePoint 2007。这个电话看起来像:

listItems = client.service.GetListItems(
    listName, '', Raw('<Query />'), viewFields, 0, 
    Raw("""<QueryOptions>
       <IncludeMandatoryColumns>TRUE</IncludeMandatoryColumns>
       </QueryOptions>"""), 
    None)
listItems=client.service.GetListItems(
列表名“”,原始(“”),视图字段,0,
生的
真的
"""), 
(无)
出于某种原因,我在
中得到了0个结果或一个错误,但得到的所有项目都是简单的同义反复
,其中x=1或x!=1


获取所有列表项的正确方法是什么?

要获取所有项,只需在其中放入orderby子句,然后指定任意列。应该返回所有内容…

它有一个愚蠢的地方,您必须将
查询
包装在
查询
元素中。生成的SOAP信封如下所示

<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'>
 <soapenv:Body>
  <GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'>
     <listName>TestQuery</listName>
     <query><Query><Where><Eq><FieldRef Name='Title'/>
      <Value Type='Text'>One</Value></Eq></Where></Query>
     </query>
     <viewFields><ViewFields><FieldRefName='Title'/>
  </ViewFields></viewFields><RowLimit>1</RowLimit>
 </GetListItems></soapenv:Body></soapenv:Envelope>

测试查询
一个
1.
因此,GetListItems web服务决定您的查询是错误的,并且不返回任何项


另请参阅本文:

您正在使用0作为行限制参数。试试100之类的东西。

好建议,但是suds库为我创建了
(小写)包装。正常的、非空的
(大写)查询非常有效。我必须进入调试器,以验证sud对于空字符串的原始(“”)具有相同的行为…我认为0表示“无限制”。