【发布时间】:2014-06-24 23:51:17
【问题描述】:
我正在使用 CAML 查询从列表中提取项目。
我尝试重新安排查询的结构,但仍然没有返回任何内容。我尽量不使用 CAMLQuery Builder(手动操作)。
<Query>
<Where>
<And>
<Contains>
<FieldRef Name="Field1"/><Value Type="Text">A</Value>
</Contains>
<And>
<In>
<FieldRef Name="Field2"/><Values><Value Type="Text">B</Value></Values>
</In>
<Or>
<In>
<FieldRef Name="Field3"/><Values><Value Type="Text">C</Value></Values>
</In>
<In>
<FieldRef Name="Field4"/><Values><Value Type="Text">D</Value></Values>
</In>
</Or>
</And>
</And>
</Where>
</Query>
注意:我看到的问题可能看起来与此重复,但从未见过像这种分支级别那样深入的问题。 CAML 查询似乎特别关注您放置结束标签的位置。
我是否错误地嵌套了“与”和“或”?此查询中可能有什么错误/遗漏?
【问题讨论】:
-
您的查询不正确:每个比较运算符(例如 Contains)应包含另外两个节点 - 1)
包含字段名称和 somevalue 包含要比较的值。 msdn.microsoft.com/en-us/library/office/… -
OP,为简洁起见,我们假设您省略了
<FieldRef>和<Value>元素 - 请使用完整的 CAML 更新问题。 -
@Stevangelista 是的,我用“A、B、C、D”代替了这些元素。我这样做是为了简单起见,因为我的问题似乎来自其父节点的结构。
-
@Yevgeniy.Chernobrivets 不能像
一样只有 1 个吗?例如: -
我相信 Yevgeniy 的意思是
<Contains>需要两个子元素;一个<FieldRef>和一个<Value>- 不是两个。
标签: sharepoint sharepoint-2010 caml