2012-01-25 130 views
0

我在我的代碼類似Jsoup刪除引號和撇號

Whitelist whitelist = new Whitelist(); 
whitelist.addTags("p", "i", "b", "em", "strong", "u"); 
String content = Jsoup.clean(data.html(), whitelist); 

。但Jsoup庫中「和」我如何防止這一點。

例如= < P>這是一個陽光燦爛的日子。</P>

結果= 它?山陽光燦爛的日子。

+1

可以你給你通過了清潔和清潔的結果的一個例子HTML? –

+0

位於哪裏的報價被刪除?在HTML中,引號圍繞屬性值? –

+0

我想你將不得不跳過引號。像「\」p \「」。只是一個想法。 – Santosh

回答

4

您正在使用data.html()這裏是Element類的API會告訴它:Element API

Retrieves the element's inner HTML. E.g. on a <div> with one empty <p>, would return <p></p>. (Whereas Node.outerHtml() would return <div><p></p></div>.) 

所以英語新應該使用outerHtml()方法:

String content = Jsoup.clean(data.outerHtml(), whitelist); 

這裏也是另一個有用的例子。該示例包含這兩種方法,你可以看到不同之處:Jsoup Attribute text and HTML example

至於另一個問題(引號被轉換成問號),我認爲它是一個編碼和charachter設置的問題,因爲它不會發生在我的電腦上。檢查源html文件的編碼,並嘗試最初使用匹配的charachter集合在Jsoup中解析它。