2011-01-20 2 views
0

Я пытаюсь получить конкретный документ ключом документа. Я следую инструкциям: https://code.google.com/apis/spreadsheets/data/3.0/reference.html#ConstructingURIsAPI Java 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 

Исключение не реально сделать много смысла. Я предполагаю, что он хочет, чтобы тег был корнем, но он добирается. Если я перейду к URL-адресу, который я использую для feedUrl, тогда я получаю XML-документ, который я хочу (имеет имя и весь документ, к которому я стремился). Я не вижу, что я делаю неправильно здесь, и я не могу найти что-либо в Интернете, которое могло мне помочь.

Кто-нибудь видит, что я делаю неправильно?

Благодаря

ответ

0

Я знаю, что это противно взломать работу, а потому, что я не мог найти любое другое решение, я кончался загрузив источник com.google.gdata.wireformats.input.AtomDataParser, создавая объект чтения который ввел ожидаемый тег в поток, который он разбор. Я изменил эту строку в коде AtomDataParser:

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

к:

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

Это, очевидно, не будет работать, если вы когда-либо с помощью SpreadsheetFeed с любыми другими URL,, но это работает для того, что я делает.

1

feedUrl должен быть «https://spreadsheets.google.com/feeds/spreadsheets/private/full/» для возвращаемых типов фидов