2011-09-25 35 views
7

Tôi cần xử lý một số trang HTML trong Ứng dụng Android của mình và tôi muốn sử dụng XPath để trích xuất thông tin có liên quan. Đối với J2SE thường xuyên có rất nhiều dự án triển khai có thể cho phân tích cú pháp HTML thông thường thành một org.w3c.dom.Document:Trình phân tích cú pháp HTML DOM nào hoạt động tốt nhất trên Android?

(Danh sách có thể không đầy đủ - nó đã được trích xuất từ ​​https://stackoverflow.com/questions/2009897/recommend-an-alternative-to-jtidy)

Nhưng rất khó để ước tính xem các thư viện đó hoạt động tốt như thế nào trên Android (kích thước thư viện, mức tiêu thụ bộ nhớ và CPU).

Dựa trên kinh nghiệm của bạn - thư viện bạn chọn cho Android là gì?

Trả lời

2

OK, có vẻ như không ai có thể trả lời câu hỏi đó - sau đó tôi phải tự mình kiểm tra.

jTidy

Tôi tải về các nguồn jTidy mới nhất, tổng hợp chúng và thêm vào file jar tạo ra như là thư viện để ứng dụng Android của tôi. Không có vấn đề gì khi sử dụng jTidy trong ứng dụng của tôi (trình mô phỏng và điện thoại thực). Khi chạy jTidy cũng hoạt động tốt - nhưng có vẻ như nó không phù hợp với môi trường Android bị giới hạn - nó hoạt động rất chậm. Nhìn vào đầu ra Logcat thậm chí phân tích cú pháp một tập tin html ~ 10kb làm cho bộ thu gom rác hoạt động mạnh.

HTMLCleaner

Từ kinh nghiệm của tôi HTMLCleaner làm việc cũng tốt đẹp trên Android; kích thước thư viện tương đối nhỏ (106KB cho v2.2). Tuy nhiên, DOM được phân tích cú pháp nó tạo ra không như mong đợi - Chèn HTMLCleaner ví dụ bổ sung các phần tử <span> vào DOM. Điều này có thể được chấp nhận nếu bạn muốn hiển thị nó dưới dạng một tệp HTML nhưng đối với trường hợp sử dụng của tôi - khai thác thông tin thông qua các biểu thức XPath - đây không phải là một bước đi!

TagSoup

Không thử nghiệm

Jericho

Không thử nghiệm

NekoHTML

Không thử nghiệm

JSoup

Không thử nghiệm

+0

bất cứ điều gì trên JSoup? – Enigma

Các vấn đề liên quan