Có api để truy cập theo chương trình vào Java documentation không? Một cái gì đó tương tự như những gì biên tập viên/IDE như Eclipse làm cho IntelliSense. Chắc chắn, javadoc tạo ra html có thể được phân tích cú pháp và lập chỉ mục, nhưng sẽ là tuyệt vời để biết nếu một cái gì đó đã tồn tại như một gói độc lập.Truy cập có lập trình vào tài liệu Java
Cập nhật: Để rõ ràng, tôi đang cố gắng truy cập vào tài liệu để thực hiện ngôn ngữ java. Tuy nhiên, không có cách nào dễ dàng, nhưng bạn phải lấy openjdk từ trang web của Oracle và sau đó thực hiện make docs
và cung cấp một số doclet để có được kết quả đầu ra ở dạng không phải html. Đây là những gì tôi đã cố gắng tránh ngay từ đầu. Vì vậy, tôi đang đọc tất cả các Makefiles bây giờ cố gắng tìm ra lý do tại sao $ PLATFORM không được giải quyết và việc xây dựng nguồn không thành công!
Điều cuối cùng tôi đã giải quyết với:
Cạo tài liệu html. Vâng. Nhận ra rằng tôi sẽ hoàn thành công việc của mình.
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)")
Nhưng hãy xem dexy. Nếu tôi có thể quản lý để xây dựng OpenJDK trên Ubuntu mà không có vấn đề - nó sẽ tạo ra JSON tốt đẹp để chơi với.
Vì mục đích gì? – MadProgrammer
Để xây dựng một nguyên mẫu nghiên cứu cho "vị trí tính năng" và "tracebility" giữa mã và tài liệu. – Tathagata
Có cần phiên bản cụ thể không? tức là Java 7, Java 6? Hoặc bạn sẽ cần phải có khả năng theo dõi giữa – MadProgrammer