問題
假如你有一個HTML片斷 (比如. 一個 div
包含一對 p
標籤;
一個不完整的HTML文檔) 想對它進行解析。這個HTML片斷可以是用戶提交的一條評論或在一個CMS頁面中編輯body部分。
辦法
使用Jsoup.parseBodyFragment(String
html)
方法.
String html = "<div><p>Lorem ipsum.</p>";
Document doc = Jsoup.parseBodyFragment(html);
Element body = doc.body();
說明
parseBodyFragment
方法創建一個空殼的文檔,並插入解析過的HTML到body
元素中。假如你使用正常的 Jsoup.parse(String
html)
方法,通常你也可以得到相同的結果,但是明確將用戶輸入作爲 body片段處理,以確保用戶所提供的任何糟糕的HTML都將被解析成body元素。
Document.body()
方法能夠取得文檔body元素的所有子元素,與 doc.getElementsByTag("body")
相同。
保證安全Stay safe
假如你可以讓用戶輸入HTML內容,那麼要小心避免跨站腳本攻擊。利用基於 Whitelist
的清除器和 clean(String
bodyHtml, Whitelist whitelist)
方法來清除用戶輸入的惡意內容。