1

Sharepoint の List Web サービスを呼び出して、getListItems() メソッドを使用しています。特に、CAML クエリを指定することに熱心です。これは、特に関心のある項目を 1 つだけ取得したいからです。これは、XML 文字列でクエリをさまざまな程度の組み合わせで指定することによって行っています。 EncodedAbsUrl、LinkFileName、URL、または FileRef で、ほとんどの結果が 0 を返します。XML クエリは次のようになります。

<?xml version="1.0" ?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">    <S:Body><GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/"><listName>{5cbc4407-3851-4e00-964a-bb7e9b430f9f}</listName>    <viewName></viewName>    <rowLimit>1000</rowLimit>    <webID></webID>

**<query><Query><Where><Eq><FieldRef Name = "FileRef"/><Value Type = "Text">"/Shared%20Documents/Ashish/Word_feb27.doc"</Value></Eq></Where></Query></query>**

<viewFields><ViewFields><FieldRef Name="FSObjType"/><FieldRef Name="LinkFilename"/><FieldRef Name="UniqueId"/><FieldRef Name="FileRef"/><FieldRef Name="FileRef"/><FieldRef Name="EncodedAbsUrl"/><FieldRef Name="FileSizeDisplay"/><FieldRef Name="_UIVersionString"/><FieldRef Name="_owshiddenversion"/></ViewFields></viewFields></GetListItems>    </S:Body></S:Envelope>

タグがない場合、この SOAP リクエストは実際には機能せず、リストで利用可能なすべてのアイテムを取得します。欲求不満は、クエリタグを指定したときに始まります。特に、次の組み合わせが私によって試みられました

FieldRef.name = {LinkFileName, EncodedAbsUrl, URL,FileRef} および Value.type = {Text, URL}

0 フィールドのない結果が返されるか、内部エラーが返されます。私は、これは構文上の問題であり、私がどこを台無しにしているかを確認するために、おそらく過去にダンニットをしたことがある皆さんにこの質問を投げかけたいと考えています。

ありがとう

4

2 に答える 2

1

CAML Query Builderと Fiddlerを使用することをお勧めします。クエリ ビルダーは Web サービスを使用して SP に接続でき、それを使用してクエリを構築できます。期待どおりの結果が得られたら、Fiddler で Web サービス要求をキャプチャして使用します :)

ところで: SharePoint クライアント オブジェクト モデルの使用を検討したことはありますか? SOAP メッセージについて心配する必要はありません。

于 2012-10-11T13:15:43.840 に答える
-1

<query><Query>タグを削除します。

于 2012-09-26T06:09:03.173 に答える