2014-10-08 30 views
0

在Java中,我有一個連接到Sharepoint的工作,並且它可以檢索列表中的數據,而且在我明確指定數據列的內部名稱時沒有問題。 ArrayList listHash = new ArrayList(); String viewName =「」; GetListItems.ViewFields viewFields = null; GetListItems.Query msQuery = null; GetListItems.QueryOptions queryOptions = null; String webID =「」; String rowLimit =「」;返回SharePoint列列標題列表

GetListItemsResponse.GetListItemsResult result = listsoap.getListItems(listName, "", msQuery, viewFields, "150", queryOptions, webID); 
Object listResult = result.getContent().get(0); 

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

    //Add each field item to the arraylist 
    String columnName1 = "ows_ClientName"; 
    String columnName2 = "ows_Address"; 
    System.out.println(attributes.getNamedItem(columnName1).getNodeValue()); 
    System.out.println(attributes.getNamedItem(columnName2).getNodeValue()); 
} 

但我想從SharePoint列表自動檢索那些列名,所以我可以更一般地閱讀,而不必知道具體列在列表中的內部名稱是什麼之前,我可以讀他們。這可以實現嗎?

任何幫助表示讚賞。

致以問候,

回答

0

我假設您正在使用SharePoint Web Services。如果是這種情況,您可以嘗試調用GetList方法並將listname作爲參數傳遞給該方法。 Web服務的結果將成爲列表的模式,其中包含列表的詳細信息,包括列的內部名稱。讓我知道這個是否奏效。

+0

我可以使用GetList,然後getContent()給我一些東西,因爲size()是1,但似乎沒有任何東西允許我從中獲取列/內部名稱。使用toString將其顯示爲空。這是我用過的。 System.out.println(listsoap.getList(listName).getContent()。size()); System.out.println(listsoap.getList(listName).getContent()。toString()); – MisterIbbs 2014-10-09 14:54:22

+0

PS:我已經添加了更多的代碼到原始文章中,以準確顯示我目前如何獲取數據(但只能通過在我的代碼中指定列名並且不從列表中檢索它們) – MisterIbbs 2014-10-09 15:00:28