有没有一种API可以编程访问Java文档?类似于Eclipse编辑器/IDE的智能感知。当然,可以解析和索引生成的javadoc html,但知道是否已经存在一个独立的包将会很棒。
更新: 明确一点,我正在尝试以编程方式访问java语言实现的文档。然而,并没有简单的方法,但是必须从Oracle的网站获取openjdk,然后执行
我最终落实的方案: 爬取html文档。是的。意识到这将完成我的工作。
更新: 明确一点,我正在尝试以编程方式访问java语言实现的文档。然而,并没有简单的方法,但是必须从Oracle的网站获取openjdk,然后执行
make docs
并提供一些doclet来获得非html格式的输出。这就是我一开始想避免的事情。所以现在我正在阅读所有Makefiles,试图弄清楚为什么$PLATFORM未被解析且源构建失败!我最终落实的方案: 爬取html文档。是的。意识到这将完成我的工作。
import urllib2
import pymongo
mongo = pymongo.Connection('localhost')
mongo_db = mongo['api_db']
mongo_collection = mongo_db['api_collection']
URL='''http://docs.oracle.com/javase/6/docs/api/index-files/index-'''
URL_range = 27+1
def getPageElements(url):
content=urllib2.urlopen(url).read()
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(content)
elements = soup('dl')
return elements
def savePageElements(elements):
for i in elements[0]:
try:
entry={'type_description':str(i.findNext('dt')).split('-')[1].split('<')[0]\
+i.findNext('a').findNext('a').renderContents(),\
'signature':i.findNext('a').findNext('a').renderContents()+i.findNext('b').renderContents(),\
'description': i.findNext('dd').renderContents()\
}
print entry
insert_id = mongo_collection.save(entry)
except:
pass
def retrieve(str):
mongo_documents = mongo_collection.find({
'signature': str,
#'type_description':"Method of java.io.PrintStream"
})
for this_document in mongo_documents:
print this_document
if __name__=="__main__":
for i in range(1,URL_range):
#url=URL+str(i)+".html"
#print "Processing:", url
#elements=getPageElements(url)
#print elements[0]
#savePageElements(elements)
retrieve("println(String)")
但看一看dexy。如果我在Ubuntu上能够成功构建OpenJDK,那么就可以生成漂亮的JSON了。