但是,我尝试使用CAML从附件列表中删除附件;当我进行查询时,它总是返回我的两个文件。我只需要使用传入的值作为参数获取当前文件。
SP.List list = context.Web.Lists.GetByTitle("TempAttachments");
// Query
SP.CamlQuery query = new SP.CamlQuery();
query.ViewXml =
"<Query><Where><Or>"
+ "<BeginsWith>"
// Job Note Matches
+ "<FieldRef Name=\"FileRef\"/>"
+ "<Value Type=\"Text\"/>" + ID + "_</Value>"
+ "</BeginsWith>"
// OR Date Modified is older than one day.
+ "<Lt>"
+ "<FieldRef Name=\"Modified\"/>"
+ "<Value Type=\"DateTime\"/><Today OffsetDays=\"-1\" /></Value>"
+ "</Lt>"
+ "</Or>"
+ "</Where></Query>";
Beginswith标签可能是问题吗?
答案 0 :(得分:2)
在发送View
时,您的CAML查询需要包含在ViewXml
元素中。
您的Value
标记格式错误;您正在关闭开始标记中的元素,这意味着您的XML格式不正确。
您的查询在您为文件名指定的值的末尾有一个下划线,但在您mentioned in comments的示例中,您的实际文件没有一个,所以不应该&# 39;在那里。
所以您的查询现在可以变为:
CamlQuery query = new CamlQuery();
query.ViewXml = string.Format(
@"<View>
<Query>
<Where>
<Or>
<BeginsWith>
<FieldRef Name='FileRef'/>
<Value Type='Text'>{0}</Value>
</BeginsWith>
<Lt>
<FieldRef Name='Modified'/>
<Value Type='DateTime'>
<Today OffsetDays='-1'/>
</Value>
</Lt>
</Or>
</Where>
</Query>
</View>
", ID);