我试图在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>
答案 0 :(得分:1)
您的CAML查询格式错误。 OR标记不能包含两个以上的字段,因此必须嵌套任何其他字段。
<OR >
FEILD 4
< OR >
FEILD 3
< OR >
FELD 1
FELD 2
< /OR >
< /OR >
</ OR >
尝试CAML查询助手 http://spcamlqueryhelper.codeplex.com/
答案 1 :(得分:0)
你需要将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>