2014-02-19 51 views
1

我有包含XHTML字符實體某些字符串:如何解碼Java中的XHTML和/或HTML5實體?

"They're quite varied" 
"Sometimes the string ∈ XML standard, sometimes ∈ HTML4 standard" 
"Therefore -> I need an XHTML entity decoder." 
"Sadly, some strings are not valid XML & are not-quite-so-valid HTML <- but I want them to work, too." 

有沒有簡單的方法來實體解碼? (我正在使用Java)

我目前使用StringEscapeUtils.unescapeHtml4(myString.replace("&apos;", "\'"))作爲臨時黑客。不幸的是,org.apache.commons.lang3.StringEscapeUtilsunescapeHtml4unescapeXML,但沒有unescapeXhtml

編輯:我想處理無效的XML,比如我想「& &xyzzy;」解碼爲「& &xyzzy;」

編輯:我認爲HTML5具有幾乎相同的字符實體XHTML,所以我覺得HTML 解碼器也可以。

+1

XHTML和HTML實體是否等效? –

+1

提示:XHTML是有效的XML –

+0

@SotiriosDelimanolis:不會。這是問題所在。 –

回答

0

這可能不是直接相關的,但您可能希望採用JSoup,它可以處理類似於更高級別的事情。包含網頁清潔例程。

+0

謝謝,看起來不錯,但在我的使用情況下,這將是一個矯枉過正。 –

+0

有沒有這樣的事情過度殺傷 - 只有問題和解決方案。 JSoup是一個比手動搜索和替換更好的解決方案。 – Gimby