Lists.asmx, GetListItems 和文件夹

我做了一些调查有人今天周围作为 SharePoint 的一部分提供的 list.asmx web 服务 2010 (及更早版本).  她之所以能够获得在根文件夹的列表项 (包括子文件夹的名称), 但不能在子文件夹中的项目。  我做了一些环顾四周在互联网络上,这是一个令人惊讶的常见的问题。  然而, 没能得到很好简单问题的答案, "如果我知道该文件夹, 如何获取文件夹中的项目?”  要诚实, 因为我想我自己对这一出图了一会儿我并没有试图在所有的努力 微笑.

进行此设置, 我创建了名为"博客情境"站点和自定义列表名称为"自定义列表的子文件夹"。  然后创建文件夹名:

  • 一年 2005
  • 一年 2006
  • 一年 2007

我添加的文件夹"2006 年"几个项目。  这是它看起来像:

image

我的朋友并不是编写 C# 代码,但宁愿使用 Java, 所以 SOAP 信封是她的真正需要。  达到目标,, 写了有点 jQuery,然后用于小提琴手获得实际的 HTTP 会话.

这里是有关 jQuery (我复制代码下下面如果要复制/粘贴):

image

他们第一个关键是要包括两个 <queryOptions> 和 <QueryOptions> 节点。  第二个关键是, <文件夹> 节点是一个 URL,客户端可以访问.

可能有其他方法来获得这, 但这工作对我来说,使用 jQuery 时.

这里是上述的 SOAP 信封:

<soapenv:信封 xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’>                
  <soapenv:正文>
    <GetListItems xmlns =’
http://schemas.microsoft.com/sharepoint/soap/’>
      <listName>自定义列表的子文件夹</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef 名称 =' 标题’ />
          <FieldRef 名称 ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <文件夹>
http://demoserver1/博客 子文件夹/2006 年年方案/列表/自定义列表</文件夹>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:正文>
</soapenv:信封>

很多例子和讨论围绕这让我相信我所需要的是 <QueryOptions> 并指定文件夹名称。  对我来说, 我需要这两包内 <queryOptions> 也可以指定完全限定的 URL <文件夹> 节点.

这里是 jQuery AJAX 安装程序:

$(文档).准备好了(功能() {
       var soapEnv =
           "<soapenv:信封 xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’> \
               <soapenv:正文> \
                    <GetListItems xmlns =’http://schemas.microsoft.com/sharepoint/soap/’> \
                       <listName>自定义列表的子文件夹</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef 名称 =' 标题’ /> \
                              <FieldRef 名称 ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <文件夹>http://demoserver1/Blogging 子文件夹/2006 年年方案/列表/自定义列表</文件夹> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:正文> \
           </soapenv:信封>";

</结束>

订阅我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

6 上“的想法Lists.asmx, GetListItems 和文件夹

  1. 丹尼尔

    你好

    我想显示使用 SPD 的特定文件夹下的文档 2010 数据源 GetListItems

    一旦连接到我的 web 服务,并为文档库输入的 guid
    我可以修改 QueryOptions,输入 CAML 下面这段
    法规遵从性 TrainingCompanyX.

    只是这并不会返回任何结果 – 移除 QueryOptions 参数返回根文档库中的所有文件….

    我看着有点传递一些查看参数,包括视图的 guid.

    答复
    1. 保罗 · 高尔文 文章作者

      这是很老的帖子/评论所以很抱歉永远不会回复. 我假设你长既然想出如何继续.

      答复
  2. 鲍勃 · 博尔顿

    还行, 看起来像它去掉了 xml… 只是下面的英镑标志替换为燕尾形.

    #queryOptions #
    #QueryOptions #
    #ViewAttributes 范围 = 'RecursiveAll' / #
    #/QueryOptions #
    #/queryOptions #

    答复
  3. 道格

    谢谢这篇文章的一群, 保罗. 我一直试图通过 ColdFusion cfhttp 消耗 GetListItems, 不能马上信封. 最终偶然发现这篇文章, 和你出过任何差错的例子. 再次感谢.

    答复
  4. 道格

    BTW – 你知道的一种资源,其中列出了所有的适当的 soap 信封吗? 一,GetList 项目发表在 microsoft.com 上都不匹配你在这儿…

    答复

离开回复 保罗 · 高尔文 取消回复

您的电子邮件地址不会被公开. 必需的地方已做标记 *