4

我想从列表中的每个元素中检索所有字段。我发现的唯一方法是创建一个包含每个字段的视图。但我不想创建一个新视图。我试过了,但似乎没有兑现。如果它有效,我可以使用 GetList 获取所有字段并基于此填充 ViewFields。

是否有视图可以覆盖 xml 请求中的默认视图?我当前的 XML 如下。

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://schemas.microsoft.com/sharepoint/soap/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <soap:Body>
    <s0:GetListItems>
      <s0:listName xsi:type="s:string">{GUID}</s0:listName>
      <s0:QueryOptions>
        <s0:ViewAttributes Scope="Recursive"></s0:ViewAttributes>
        <s0:IncludeMandatoryColumns>TRUE</s0:IncludeMandatoryColumns>
      </s0:QueryOptions>
      <s0:Query></s0:Query>
      <s0:ViewFields>
        <s0:FieldRef xsi:type="s:string" Name="ID"></s0:FieldRef>
        <s0:FieldRef xsi:type="s:string" Name="CellPhone"></s0:FieldRef>
        <s0:FieldRef xsi:type="s:string" Name="FirstName"></s0:FieldRef>
      </s0:ViewFields>
    </s0:GetListItems>
  </soap:Body>
</soap:Envelope>
4

3 回答 3

4

我想到了。出于某种原因,您必须在正确的soap 命名空间中有一个viewFields 标记。在其中有一个 ViewFields 标签(大小写很重要)。

<s0:viewFields>
<ViewFields>
<s0:FieldRef ...>
</ViewFields>
</s0:viewFields>
于 2009-03-09T20:44:11.517 回答
1

"For some reason"? An element is identified by the combination of local name and namespace. With a diffrerent namespace, it's a different element, even if it has the same local name.

于 2009-03-09T22:57:22.927 回答
1

您的 ViewFields 应该包含您要返回的所有字段。您的查询应返回 CAML 查询。CAML 查询将确定过滤器和排序。

U2U CAML Query Builder 是一个帮助 ViewFields 和 CAML 查询的好工具。我目前无法找到适用于此的链接,因此您可能必须自己搜索一些链接或求助于其他人的 CAML 查询工具。

柯克

于 2009-03-09T17:20:41.350 回答