0

我需要列出位于一个文档库中与特定命名约定匹配的所有文件:要检索的文档都采用“报告 xxxx-xx-xx”的形式。

我必须使用 GetListItems 网络服务。

有没有办法在一个电话中收集所有这些文件?如何在查询部分编写“where”部分?
我可以在其中使用一些正则表达式吗?

谢谢

4

2 回答 2

1

阅读

条款的构造WHERE似乎很清楚:

<Query>
  <Where>
    <Geq>
      <FieldRef Name="Expires"/>
      <Value Type="DateTime">
        <Today/>
      </Value>
    </Geq>
  </Where>
  <OrderBy>
    <FieldRef Name="Modified"/>
  </OrderBy>
</Query>

然而,似乎没有办法使用正则表达式。也许您能做的最好的事情是使用BeginsWith“报告”上的元素和Contains元素来搜索破折号。有一个很好的例子

于 2012-09-26T15:36:34.740 回答
1

也许您可以在您的文档库中添加一个计算列,对您的标题文本执行字符串操作和/或测试操作,并返回例如可以在您的 where 子句中轻松获取的内容?

这可能有助于限制服务器端的结果集......

=IF(LEFT([TitleColumn],7)="Report ", if(ISNUMBER(DATEVALUE(RIGHT([TitleColumn],10))), "TRUE", "FALSE"), "FALSE")

有关计算列中可用的内容,请参阅Microsoft 的计算字段公式

于 2012-09-27T11:18:09.140 回答