我做了一些调查有人今天周围作为 SharePoint 的一部分提供的 list.asmx web 服务 2010 (及更早版本). 她之所以能够获得在根文件夹的列表项 (包括子文件夹的名称), 但不能在子文件夹中的项目。 我做了一些环顾四周在互联网络上,这是一个令人惊讶的常见的问题。 然而, 没能得到很好简单问题的答案, "如果我知道该文件夹, 如何获取文件夹中的项目?” 要诚实, 因为我想我自己对这一出图了一会儿我并没有试图在所有的努力 .
进行此设置, 我创建了名为"博客情境"站点和自定义列表名称为"自定义列表的子文件夹"。 然后创建文件夹名:
- 一年 2005
- 一年 2006
- 一年 2007
我添加的文件夹"2006 年"几个项目。 这是它看起来像:
我的朋友并不是编写 C# 代码,但宁愿使用 Java, 所以 SOAP 信封是她的真正需要。 达到目标,, 写了有点 jQuery,然后用于小提琴手获得实际的 HTTP 会话.
这里是有关 jQuery (我复制代码下下面如果要复制/粘贴):
他们第一个关键是要包括两个 <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