Ram*_*eef 5 c# sharepoint web-services sharepoint-2007
我想获取sharePoint网站中特定列表的所有可见列(隐藏== false),我试图查看SharePointWebService.Lists.GetList(listName)
,但找不到任何有用的东西,还检查了列表WebService提供的方法,也没什么新的,
请指教.
您可以使用列表Web服务的GetListAndView方法来获取列表和视图的模式.
从文档中,如果将viewName
参数保留为空,则将返回默认视图.然后,您可以读取<ViewFields></ViewFields>
字段列表的节点.
*编辑*
事实证明使用XPath查询返回的XML比我想象的更难......这是我想出的:
XmlNode result = webService.GetListAndView("My Pictures", string.Empty);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(result.OwnerDocument.NameTable);
nsmgr.AddNamespace("sp", "http://schemas.microsoft.com/sharepoint/soap/");
string xpathQuery = "sp:View/sp:ViewFields/sp:FieldRef";
XmlNodeList nodes = result.SelectNodes(xpathQuery, nsmgr);
for (int i = 0; i < nodes.Count; i++)
{
Console.WriteLine(nodes[i].Attributes["Name"].Value);
}
Run Code Online (Sandbox Code Playgroud)
看起来你必须有一个XmlNamespaceManager
否则你的查询总是不返回任何值.关于指定命名空间的东西...这是一个很好的参考.