问题描述
||
这是我的代码:
\”);
sb.AppendLine(@ \“ / SubSite / Lists / Documents / momo.txt Value> \”);
sb.AppendLine(@ \“ Eq> Where> \”);
或者,您可以使用 \”);
sb.AppendLine(@ \“ / momo.txt Value> \”);
sb.AppendLine(@ \“ Contains> Where> \”);
然后循环返回的结果,并删除不以\“
StringBuilder sb = new StringBuilder();
sb.AppendLine(@\"<Where><Lt>\");
sb.AppendLine(@\"<FieldRef Name=\"\"FileRef\"\" /><Value Type=\"\"Text\"\">momo.txt</Value>\");
sb.AppendLine(@\"</Lt></Where>\");
XmlDocument xmlDoc = new System.Xml.XmlDocument();
XmlNode ndQuery = xmlDoc.CreateNode(XmlNodeType.Element,\"Query\",\"\");
ndQuery.InnerXml = sb.ToString();
XmlNode resultsElement1 = listsProxy.GetListItems(\"Documents\",\"\",ndQuery,null,\"\");
但是它将所有文档返回任何想法,我在这里做错了什么?
谢谢。
解决方法
FileRef
字段包含文档的服务器相对URL,类似\\“2ѭ\”。如果仅提供文件名(例如“ 3”),则“ 4”或“ 5”都不起作用。
要解决此问题,您可以尝试:
相对于服务器的URL使用ѭ5代替文件名。
sb.AppendLine(@ \“ <Contains>
运算符(CAML没有<EndsWith>
运算符)。
sb.AppendLine(@ \“ /mono.txt
\”结尾的项目。
另外,如果您关心不带扩展名的文档名称,则可以用“ 10”代替“ 1”字段。
, 当前,您的查询是针对名称值小于momo.text
而不是等于items12的项目。因此将Lt
更改为Eq
。