2011-01-20 30 views
0

我試圖通過文檔的關鍵字獲取特定文檔。我在這裏的操作說明:https://code.google.com/apis/spreadsheets/data/3.0/reference.html#ConstructingURIsJava GData Spreadsheets API無法獲取Feed

我從URL的關鍵是:https://spreadsheets.google.com/ccc?key=0Aoz...mcmc&hl=en#gid=0

URL feedUrl = new URL("https://spreadsheets.google.com/feeds/spreadsheets/private/full/0Aoz...mcmc"); 
SpreadsheetFeed feed = _service.getFeed(feedUrl, SpreadsheetFeed.class); 
_entry = feed.getEntries().get(0); 

它給了我以下異常:

Exception in thread "main" com.google.gdata.util.ParseException: [Line 1, Column 165] 
Invalid root element, expected (namespace uri:local name) of (http://www.w3.org/2005/Atom:feed), 
    found (http://www.w3.org/2005/Atom:entry 

異常並沒有真正很多意義。我想它希望標籤成爲根,但它變得越來越重要。如果我轉到我用於feedUrl的URL,那麼我將獲得我想要的XML文檔(包含名稱和我所瞄準的所有文檔)。我沒有看到我在這裏做錯了什麼,也找不到能夠幫助我的網上任何東西。

有人看到我在做什麼錯了嗎?

感謝

回答

0

我知道這是一個討厭的黑客的工作,但因爲我無法找到任何其他的解決辦法,我結束了對下載的com.google.gdata.wireformats.input.AtomDataParser源,創建一個Reader對象將預期標記注入到正在解析的流中的包裝器。

feedResult.parseAtom(inProps.getExtensionProfile(), inputReader); 

到:我在AtomDataParser代碼改變了這一行

if(feedResult instanceof SpreadsheetFeed) { 
    feedResult.parseAtom(inProps.getExtensionProfile(), new utils.ReaderWrapper(inputReader)); 
} else { 
    feedResult.parseAtom(inProps.getExtensionProfile(), inputReader); 
} 

如果你曾經使用SpreadsheetFeed與任何其他網址,這顯然是不行的,但它爲我什麼這樣做。

1

feedUrl應爲「https://spreadsheets.google.com/feeds/spreadsheets/private/full/」,用於退貨類型