从sharepoint list java获取所有列名

时间:2014-10-09 14:11:43

标签: java sharepoint

我通过网络服务用java阅读SharePoint列表。

我已经看到了一些基于您提供的列标题读取列表的示例。

我想知道如何阅读SharePoint列表中的所有项目并获取所有列名称的列表(最好是内部列表)。

感谢您的想法

3 个答案:

答案 0 :(得分:1)

也许这个链接可以帮到你:

http://blog.ashwani.co.in/blog/2013-07-28/connect-and-access-sharepoint-webservice-from-java/

请参阅他不应用查询或queryOption的displaySharePointList()方法,我认为这将显示所有列表项。

但是如果你想得到一个列名列表,你必须创建一个CAML查询(这是一个非常模糊的答案,但我不知道完美的答案,因为我自己研究这个问题)

编辑:我发现这个很棒的程序可以帮助你创建CAMLQueries:

https://spcamlqueryhelper.codeplex.com/

欢呼声

答案 1 :(得分:1)

这将获得列内部名称而不解码。

NamedNodeMap attributes = listResult.getElementsByTagName("z:row").item(0).getAttributes();

for (int i=0; i<attributa.getLength(); i++){

   System.out.println("name: "+attributa.item(i).getNodeName());

   }

但是,它不会显示隐藏的列。知道怎么样?

答案 2 :(得分:0)

GetListItemsResponse.GetListItemsResult result = listsoap.getListItems(listName, "", msQuery, viewFields, null, queryOptions, webID);
    Object listResult = result.getContent().get(0);
    if(listResult != null){
        Element element = (Element)result.getContent().get(0);
        NodeList nl = element.getElementsByTagName("z:row");
        System.out.println("\n=> " + nl.getLength() + " results from SharePoint Online\n");
        for(Integer i = 0; i < nl.getLength(); i++){
             NamedNodeMap attributes = nl.item(i).getAttributes();
             System.out.println(attributes.getNamedItem("ows_Title").getNodeValue());
        }

这是当前使用的代码。但是,我必须明确指定内部名称才能检索其数据。是不是有办法通过Java检索SharePointList的所有内部名称?