经过几天的研究,我终于找到了解决方案:
Google 介绍了如何访问保存在 Google Base ( hier ) 上的项目。令人惊讶的是,您不需要实现任何 Google 数据库 API 或任何东西来访问 Google 产品,您可以通过纯 URL 轻松查询它们。
您可以通过 URL http://www.google.com/base/feeds/snippets访问 Google Base 和 Google 产品中的公共项目
。您可以在此 URL 上附加特定查询,例如:搜索数码相机的 ?bq=digital+camera 或搜索实际 EAN 代码的 ?bq=5030932067876。
您将返回一个包含该查询结果的 XML 文档。例如,网址http://www.google.com/base/feeds/snippets?bq=5030932067876会返回以下 XML 文档:
<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:gm='http://base.google.com/ns-metadata/1.0' xmlns:g='http://base.google.com/ns/1.0' xmlns:batch='http://schemas.google.com/gdata/batch'>
<id>http://www.google.com/base/feeds/snippets</id>
<updated>2010-07-27T15:52:29.459Z</updated>
<title type='text'>Items matching query: 5030932067876</title>
<link rel='alternate' type='text/html' href='http://base.google.com'/>
<link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.google.com/base/feeds/snippets'/>
<link rel='http://schemas.google.com/g/2005#batch' type='application/atom+xml' href='http://www.google.com/base/feeds/snippets/batch'/>
<link rel='self' type='application/atom+xml' href='http://www.google.com/base/feeds/snippets?start-index=1&max-results=25&bq=5030932067876'/>
<author>
<name>Google Inc.</name>
<email>base@google.com</email>
</author>
<generator version='1.0' uri='http://base.google.com'>GoogleBase</generator>
<openSearch:totalResults>20</openSearch:totalResults>
<openSearch:startIndex>1</openSearch:startIndex>
<openSearch:itemsPerPage>25</openSearch:itemsPerPage>
<entry>
<id>http://www.google.com/base/feeds/snippets/6567855098786723080</id>
<published>2009-06-17T19:10:11.000Z</published>
<updated>2010-07-26T19:36:16.000Z</updated>
<category scheme='http://base.google.com/categories/itemtypes' term='Produkte'/>
<title type='text'>Xb360 Fifa 09 Electronic Arts EAD07606316 5030932067876</title>
<content type='html'>FIFA 09 Die brandneue Fußballsimulation! Geh in FIFA 09 auf den Platz und spiel professionellen Fußball, so wie du ihn dir vorstellst. Erlebe die authentischste Fußballsimulation, die EA SPORTS? je veröffentlicht hat, lebe deinen Traum vom ...</content>
<link rel='alternate' type='text/html' href='http://www.mercateo.com/p/615IT-R78802/Xb360_Fifa_09.html?PageID=FG-615IT-R78802'/>
<link rel='self' type='application/atom+xml' href='http://www.google.com/base/feeds/snippets/6567855098786723080'/>
<author>
<name>Mercateo.com</name>
</author>
<g:zustand type='text'>neu</g:zustand>
<g:mpn type='text'>EAD07606316</g:mpn>
<g:image_link type='url'>http://images.mercateo.com/images/products/voelkner/906692_bb_00_fb.eps.jpg</g:image_link>
<g:item_language type='text'>DE</g:item_language>
<g:ean type='text'>5030932067876</g:ean>
<g:id type='text'>615IT-R78802</g:id>
<g:shipping type='shipping'>
<g:price>4.76 eur</g:price>
</g:shipping>
<g:target_country type='text'>DE</g:target_country>
<g:preis type='floatUnit'>34.14 eur</g:preis>
<g:expiration_date type='dateTime'>2010-08-25T19:36:16Z</g:expiration_date>
<g:marke type='text'>Electronic Arts</g:marke>
<g:customer_id type='int'>114950</g:customer_id>
<g:item_type type='text'>Produkte</g:item_type>
</entry>
(......更多条目来......)
您只需执行以下操作即可解析此文档: 子类化 org.xml.sax.helpers.DefaultHandler。并使用以下代码初始化 myHandler(导入 javax.xml.parsers.SAXParser 和 javax.xml.parsers.SAXParserFactory 使其工作):
MyHandler myHandler = new MyHandler();
String urlString = "http://www.google.com/base/feeds/snippets?bq=5030932067876";
URL link = new URL(urlString);
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
xr.setContentHandler(myHandler);
InputStream stream = link.openStream();
InputSource inputSource = new InputSource(stream);
inputSource.setEncoding("ISO-8859-1");
xr.parse(inputSource);
根据您对 MyHandler 进行子类化的方式,Object myHandler 应该具有您刚刚解析的所有值。
希望它可以帮助某人!