问题描述
|
我正在通过Web服务api查询共享点列表。通过API调用服务需要发送一个表示CAML查询的“ 0”对象。在其他所有条件完全相同的情况下,这是我尝试发送的两个不同查询(在将它们发送到API之前,通过
XmlNode
的InnerXml
属性获得):
<!-- This one works fine -->
<Query>
<Where>
<Eq>
<FieldRef Name=\"ID\" />
<Value Type=\"Text\">304</Value>
</Eq>
</Where>
</Query>
<!-- This one fails with a Soap exception (which I\'ve seen before when searching
for an invalid field,but the first one calls the exact same field). -->
<Query>
<Where>
<In>
<FieldRef Name=\"ID\" />
<Values>
<Value Type=\"Text\">304</Value>
<Value Type=\"Text\">303</Value>
<Value Type=\"Text\">302</Value>
<Value Type=\"Text\">301</Value>
</Values>
</In>
</Where>
</Query>
我是CAML查询的新手,所以也许我不了解In
语句的工作原理,但是我看过的所有示例似乎都具有这种确切的格式。
解决方法
您正在使用哪个版本的SharePoint? IN元素似乎仅在SharePoint 2010中有效。(根据本文:http://www.lushpedia.com/post/Alternative-of-In-Clause-for-CAML-Query-for-SharePoint-2007。 aspx)