我正在尝试通过doc的密钥获取特定文档。我按照这里的说明进行操作:https://code.google.com/apis/spreadsheets/data/3.0/reference.html#ConstructingURIs
我从网址获取密钥: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 :(得分:1)
feedUrl应为“https://spreadsheets.google.com/feeds/spreadsheets/private/full/”以获取退货Feedtypes
答案 1 :(得分:0)
我知道这是一个讨厌的黑客工作,但因为我找不到任何其他解决方案,我最终下载了com.google.gdata.wireformats.input.AtomDataParser的源代码,创建了一个注入了预期标签的Reader对象包装器进入解析的流。我在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与任何其他网址一起使用,这显然不会起作用,但它适用于我正在做的事情。