使用SOAP查询Sharepoint以获取多个字段中的空值

时间:2014-07-25 20:46:44

标签: powershell sharepoint soap caml

我试图在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>

2 个答案:

答案 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>

CAML query with nested AND's and OR's for multiple fields