2013-09-20 20 views
5

Tôi có một số HTML (Chuỗi) mà tôi đưa vào Jsoup để tôi có thể thêm nội dung nào đó vào tất cả thuộc tính href và src. Tuy nhiên, tôi nhận thấy rằng đối với một số ký tự HTML đặc biệt, Jsoup đang chuyển đổi chúng từ nói “ thành ký tự thực tế . Tôi đưa ra giá trị trước và sau và tôi thấy thay đổi đó.Jsoup gặp sự cố với các ký hiệu HTML đặc biệt, ‘ — vv

Trước:

THIS — IS A “TEST”. 5 > 4. trademark: ™ 

Sau:

THIS — IS A “TEST”. 5 > 4. trademark: ? 

Cái quái gì đang xảy ra? Tôi đã đặc biệt chuyển đổi các ký tự đặc biệt này thành các thực thể HTML của họ trước bất kỳ công cụ Jsoup nào để tránh điều này. Các dấu ngoặc kép đã thay đổi thành các ký tự trích dẫn thực tế, giá trị lớn hơn so với vẫn giữ nguyên và nhãn hiệu đã thay đổi thành dấu chấm hỏi. Aaaaaaa.

FYI, mã Jsoup tôi đang làm:

Document document = Jsoup.parse(fileHtmlStr); 
//some stuff 
String modifiedFileHtmlStr = document.html(); 

Nhờ sự giúp đỡ!

Trả lời

8

Mã bên dưới sẽ tương tự như đánh dấu đầu vào. Nó thay đổi chế độ thoát cho các ký tự cụ thể và đặt chế độ ASCII để thoát khỏi dấu hiệu TM cho các hệ thống không hỗ trợ Unicode.

Sản lượng:

<p>THIS &mdash; IS A &ldquo;TEST&rdquor;&period; 5 &gt; 4&period; trademark&colon; &#x99;</p> 

Mã:

Document doc = Jsoup.parse("" + 
    "<p>THIS &mdash; IS A &ldquo;TEST&rdquo;. 5 &gt; 4. trademark: &#153;</p>"); 

Document.OutputSettings settings = doc.outputSettings(); 

settings.prettyPrint(false); 
settings.escapeMode(Entities.EscapeMode.extended); 
settings.charset("ASCII"); 

String modifiedFileHtmlStr = doc.html(); 

System.out.println(modifiedFileHtmlStr); 
+0

Awesome, nhờ ... làm việc như một nét duyên dáng. Tôi mới đến Jsoup và tôi không thấy điều này trong sách dạy nấu ăn trên trang web của họ. – mikato

+0

@Andrew Chaschev settings.escapeMode (Entities.EscapeMode.extended); Các đối tượng không được tìm thấy và do đó đưa ra một lỗi.Vui lòng xem câu hỏi của tôi http://stackoverflow.com/questions/20908946/jsoup-adding-extra-encoded- stuff-for-an-html –

+0

@Andrew Chaschev lớp thực thể hiện đang hoạt động Tôi đã cài đặt phiên bản 1.6.1 của jsoup nhưng bây giờ tệp HTML thậm chí còn tệ hơn. Ứng dụng appanding & newline everywhere.Kindly help. –

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