0

我正在通过 Web 服务 api 查询共享点列表。通过 API 调用服务需要发送一个XmlNode表示 CAML 查询的对象。在其他一切完全相同的情况下,这是我尝试发送的两个不同查询(在发送到 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语句如何工作的明显内容,但我查看的所有示例似乎都具有这种确切的格式。

4

1 回答 1

3

您使用的是哪个版本的 SharePoint?IN 元素似乎仅在 SharePoint 2010 中有效。(根据这篇文章:http://www.lushpedia.com/post/Alternative-of-In-Clause-for-CAML-Query-for-SharePoint-2007。 .aspx )

于 2011-04-13T14:10:20.930 回答