我錯過了什麼嗎?有一個更好的方法嗎?jSoup - 刪除特定的樣式屬性
INPUT:
<span style="FONT-FAMILY: 'Lucida Sans','sans-serif'; COLOR: #003572; FONT-SIZE: 9pt;
mso-fareast-font-family: Calibri; mso-ansi-language: EN-US; mso-fareast-language: EN-US;
mso-bidi-language: AR-SA; mso-fareast-theme-font: minor-latin">Dr. Who is
<u>usually</u> available for consultations Mon - Thurs afternoons and Friday 9a-
12p at 555-1212. </span>
期望的輸出:
<跨度風格= 「COLOR:#003572; FONT-SIZE:9pt的;」>博士。誰是 <ü>通常是< /ü>可用於協商星期一 - 星期四 下午和星期五9a-12p在555-1212。 </SPAN >
到目前爲止我的代碼:
//清理爲期一週的筆記中的HTML寫入DB前
Whitelist wl = new Whitelist(); wl = Whitelist.simpleText(); wl.addTags("br"); wl.addTags("p"); wl.addTags("span"); wl.addAttributes(":all","style"); Document doc = Jsoup.parse( "<html><head></head><body>"+ds.getWeeklongNote()+"</body></html>"); Elements e = doc.select("*"); for (Element el : e){ for (Attribute attr : el.attributes()){ if (attr.getKey().equals("span")){ String newValue = ""; String s = attr.getValue(); String[] values = s.split(";"); for (String value : values){ if (value.startsWith("COLOR")||value.startsWith("FONT-SIZE")){ newValue += attr.getKey()+"="+attr.getValue()+";"; } } attr.setValue(newValue); } } } doc.html(e.outerHtml()); ds.setWeekLongNote(Jsoup.clean(doc.body().outerHtml(), wl));
'Jsoup.parse(「'標籤有什麼用? –
很好的捕獲,但不是我一直在尋找。由於STYLE是一個實質上接受數組作爲其值的屬性,是否有一種**更好的方式來編輯STYLE標籤的內容,而不是我上面正在處理的內容? –