Lists.asmx, GetListItems a priečinkov

Bol som robiť nejaké výskum pre niekoho dnes okolo list.asmx webovej služby poskytované ako súčasť SharePoint 2010 (a staršie).  Ona sa podarilo získať zoznam položiek v hlavnom priečinku (vrátane názvov podpriečinkov), ale nemohol dostať položky v podpriečinkov.  Som urobil niektoré pozrieme na internetové a je prekvapivo spoločná otázka.  Ešte, Nemohol som sa dostať dobrú odpoveď na jednoduchú otázku, „pokiaľ viem, aby sa priečinok, ako sa dostať položky v priečinku?”  Ak chcete byť úprimný, Aj vyskúšať tvrdo všetko, pretože som chcel obrázok, tohle sa sám na chvíľu úsmev.

Nastavenie, Som vytvoril stránky s názvom "Blogovanie scenáre" a vlastný zoznam s názvom "Vlastný zoznam s Sub Folders".  Potom som vytvoril priečinky s názvom:

  • Rok 2005
  • Rok 2006
  • Rok 2007

Som pridal niekoľko položiek do priečinka „rok 2006".  To je to, čo vyzerá ako:

image

Môj priateľ nie je písania kódu C#, ale skôr pomocou Java, Obálka SOAP tak bol, čo ona naozaj potrebné.  Tú, Som napísal bitovým jQuery a potom použiť fiddler získať skutočný rozhovor HTTP.

Tu je relevantné jQuery (I skopíroval kód nadol pod Ak chcete kopírovať/vložiť):

image

Ich prvý kľúč je zahrnúť aj <queryOptions> a <QueryOptions> uzol.  Druhý kľúč je, že <Priečinok> uzol je URL, na ktorú má klient prístup.

Môžu existovať iné spôsoby, ako si to, ale to funguje dobre pre mňa, keď pomocou jQuery.

Tu je Obálka SOAP pre vyššie uvedené:

<soapenv:Obálka xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’>                
  <soapenv:Orgán>
    <GetListItems xmlns =’
http://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listnate>Vlastný zoznam s priečinkami Sub</listnate>
      <viewFields>  
        <ViewFields>
          <Názov FieldRef = "hlava’ />
          <Názov FieldRef = "EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Priečinok>
http://demoserver1/blogovanie Scenáre, zoznamy alebo vlastné zoznam s Sub Folders za rok 2006</Priečinok>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Orgán>
</soapenv:Obálka>

Veľa príkladov a diskusie okolo to viedol ma domnievať sa, že všetko, čo potrebujete bol <QueryOptions> a zadajte názov priečinka.  Pre mňa, I potrebné pre obe zabaliť vnútri <queryOptions> rovnako ako zadajte úplnú adresu URL <Priečinok> uzol.

Tu je nastavenie AJAX jQuery:

$(dokument).pripravený(Funkcia() {
       var soapEnv =
           "<soapenv:Obálka xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’> \
               <soapenv:Orgán> \
                    <GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listnate>Vlastný zoznam s priečinkami Sub</listnate> \
                       <viewFields> \
                           <ViewFields> \
                              <Názov FieldRef = "hlava’ /> \
                              <Názov FieldRef = "EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Priečinok>http://demoserver1/Blogging Scenáre, zoznamy alebo vlastné zoznam s Sub Folders za rok 2006</Priečinok> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Orgán> \
           </soapenv:Obálka>";

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

6 myšlienky na "Lists.asmx, GetListItems a priečinkov

  1. Daniel

    ahoj

    Snažím sa zobrazujú doklady podľa konkrétnej zložky pomocou JPD 2010 Objekt DataSource GetListItems

    Akonáhle sa pripojiť k mojej webovej službe a zadať identifikátor guid pre knižnicu dokumentov
    Môžete upraviť QueryOptions a zadajte nasledujúci kus CAML
    Dodržiavanie TrainingCompanyX.

    Len to nevrátilo žiadne výsledky – odstrániť QueryOptions parameter vráti všetky dokumenty v knižnici dokumentov koreň….

    Mám pri pohľade na absolvovanie niektoré druh zobrazenie parametrov a obsahuje identifikátor guid zobrazenia.

    Odpoveď
    1. Paul Galvin post autor

      Toto je veľmi starý post/komentár tak ľúto nikdy odpoveď. Predpokladám, že ste dlho pretože prišiel na to, ako postupovať.

      Odpoveď
  2. Bob Bolton

    ok, Vyzerá to odčítala xml… len nahradiť libra znamenia pod šípky.

    #queryOptions #
    #QueryOptions #
    #Atribúty zobrazenia rozsahu = "RecursiveAll" / #
    #/QueryOptions #
    #/queryOptions #

    Odpoveď
  3. Doug

    Vďaka banda pre tento post, Paul. Snažila som sa konzumujú Objekt GetListItems cez ColdFusion cfhttp, a nemohol dopadnúť obálky. Nakoniec prišiel cez tento príspevok, a svojím príkladom pracoval bezchybne. Vďaka opäť.

    Odpoveď
  4. Doug

    BTW – viete o zdroj, ktorý uvádza všetky správne mydlo obálky? Ten GetList položky zverejnené na lokalite microsoft.com nezodpovedá, môžete si tu…

    Odpoveď

Zanechajte odpovedať na Paul Galvin zrušiť odpoveď

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *