我试图在Powershell中查询SOAP Sharepoint,但当我添加超过2个字段时,我遇到了问题。我想知道的是,如果有一种方法来看看是否有任何4个字段是空的?
当我执行这个查询时,我得到结果:
<Query>
<Where>
<Or>
<IsNull>
<FieldRef Name='Field1'/>
</IsNull>
<IsNull>
<FieldRef Name='Field2'/>
</IsNull>
</Or>
</Where>
</Query>
然而,当我执行这个查询时,抛出了一个异常。
<Query>
<Where>
<Or>
<IsNull>
<FieldRef Name='Field1'/>
</IsNull>
<IsNull>
<FieldRef Name='Field2'/>
</IsNull>
<IsNull>
<FieldRef Name='Field3'/>
</IsNull>
<IsNull>
<FieldRef Name='Field4'/>
</IsNull>
</Or>
</Where>
您的CAML查询格式错误。OR标记不能包含两个以上的字段,因此任何其他字段都必须嵌套。
<OR >
FEILD 4
< OR >
FEILD 3
< OR >
FELD 1
FELD 2
< /OR >
< /OR >
</ OR >
尝试CAML查询助手http://spcamlqueryhelper.codeplex.com/
你需要把AND和OR混在一起。例如:
<Where>
<And>
<Or>
<IsNull>
<FieldRef Name='Field1' />
</IsNull>
<IsNull>
<FieldRef Name='Field2' />
</IsNull>
</Or>
<And>
<Or>
<IsNull>
<FieldRef Name='Field3' />
</IsNull>
<IsNull>
<FieldRef Name='Field4' />
</IsNull>
</Or>
</And>
</And>
</Where>
对多个字段嵌套and 's和OR's的CAML查询