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