0

ドキュメントのキーで特定のドキュメントを取得しようとしています。私はここの指示に従っています:https ://code.google.com/apis/spreadsheets/data/3.0/reference.html#ConstructingURIs

次の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ドキュメントが表示されます(目的のドキュメントの名前とすべての名前が含まれています)。私はここで何が間違っているのかわかりませんし、私を助けることができたものをオンラインで見つけることができません。

誰かが私が間違っているのを見ますか?

4

2 に答える 2

1

返されるフィードタイプの場合、feedUrl は「https://spreadsheets.google.com/feeds/spreadsheets/private/full/」である必要があります

于 2011-08-23T10:09:37.677 に答える
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);
}

他の URL で SpreadsheetFeed を使用したことがある場合、これは明らかに機能しませんが、私が行っていることでは機能します。

于 2011-01-24T17:10:05.810 に答える