2014-10-09 119 views
0

我正在通過web服務使用java讀取SharePoint列表。從sharepoint列表中獲取所有列名稱java

我見過一些例子,它們將根據您提供的列標題作爲輸入來讀取列表。

我想知道如何讀取SharePoint列表中的所有項目並獲取所有列名稱(內部優先)的列表。

感謝您的想法傢伙

+0

你能展示實際的代碼,而不是解釋它應該做什麼? – Max 2014-10-09 18:01:21

回答

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的所有內部名稱嗎?

1

也許這個鏈接將幫助您:

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

看他不應用任何查詢displaySharePointList()方法或queryOption,我認爲這將顯示所有列表項。

但是,如果你想獲得列名的列表,你必須創建一個CAML查詢(這是非常模糊的答案,但我不知道完美的答案,因爲我正在查看這個由自己atm)。

編輯:我發現這個偉大的計劃,幫助您創建CAMLQueries:

https://spcamlqueryhelper.codeplex.com/

歡呼

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()); 

    } 

但是,它不顯示隱藏的列。任何想法如何?