java - 以编程方式访问 Java 文档

标签 java api documentation

<分区>

是否有一个 api 以编程方式访问 Java documentation ?类似于 Eclipse 等编辑器/IDE 为 IntelliSense 所做的事情。当然,javadoc 生成的 html 可以被解析和索引,但如果知道某些东西是否已经作为独立包存在,那就太好了。

更新: 明确地说,我正在尝试以编程方式访问 Java 语言实现的文档。然而,没有简单的方法,但您必须从 Oracle 的站点获取 openjdk,然后执行 make docs 并提供一些 doclet 以获取非 html 格式的输出。这是我从一开始就试图避免的。所以我现在正在阅读所有的 Makefile,试图弄清楚为什么 $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 来玩。

最佳答案

在您编写时,Eclipse 会解析 javadoc 并且做得很好。它似乎是在 3.2M4 中介绍的.您可能能够从 Eclipse 源代码中提取功能,检查 Eclipse 社区的入口点可能是一个很好的起点。

如果这不起作用,我想您的起点应该是普通的 HTML 解析器。

关于java - 以编程方式访问 Java 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12867820/

相关文章:

json - 我正在尝试打印 JSON

javascript - 在 Angular 中生成 AWS 签名请求

c# - 无效的 XML 注释 : invalid character

python - 如何将我自己的 "help"信息添加到 python 函数/类中?

api - 我想查看另一个用户 channel Youtube 的报告??我可以吗?

node.js - Hexo可以生成PDF文件吗?

java - 编译自定义 JSP 标记处理程序

java - Activity 之间的全局对象

java - OpenCV 2.4.8 中的 detectMultiScale 参数,Java

java - 与 Servlet Filter 和 FilterRegistrationBean 一起使用时,跨源资源共享不起作用