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

ViewFieldsには、返したいすべてのフィールドが含まれている必要があります。クエリはCAMLクエリを返す必要があります。CAMLクエリは、フィルターとソートを決定します。

ViewFieldsとCAMLクエリの両方を支援する優れたツールは、U2UCAMLクエリビルダーです。現在、そのために機能するリンクを見つけるのに苦労しているので、自分で検索するか、他の人のCAMLクエリツールを使用する必要があるかもしれません。

カーク

于 2009-03-09T17:20:41.350 に答える
1

"何らかの理由で"?要素は、ローカル名名前空間の組み合わせによって識別されます。名前が異なると、同じローカル名であっても、別の要素になります。

于 2009-03-09T22:57:22.927 に答える