我想看看是否可以在轉換後用Jsoup找回原始字符串。關於Jsoup身份轉換
Document doc = Jsoup.parse("<html><body><span>→</span></body></html>");
String str = doc.toString();
System.out.println(str);
我想輸出是等效的HTML(格式拋在一邊)。 這裏「rarr」字符串被破壞。 那麼,我必須使用什麼功能?
我想看看是否可以在轉換後用Jsoup找回原始字符串。關於Jsoup身份轉換
Document doc = Jsoup.parse("<html><body><span>→</span></body></html>");
String str = doc.toString();
System.out.println(str);
我想輸出是等效的HTML(格式拋在一邊)。 這裏「rarr」字符串被破壞。 那麼,我必須使用什麼功能?
Pete Houston帶我走上了issue 660的軌道。
可以使用做到這一點:
doc
.outputSettings()
.charset("ascii")
.escapeMode(Entities.EscapeMode.extended);
String str = doc.toString();
輸出將是:
<html>
<head></head>
<body>
<span>→</span>
</body>
</html>
但輸出與輸入略有不同(的→
代替→
),因爲:
根據HTML5命名字符refe分配辦法, http://www.w3.org/TR/2011/WD-html5-20110113/named-character-references.html
→
相同→
也一樣,同樣→
,→
...如你所知,jsoup做驗證(越獄/ UNESCAPE)在處理 輸入和映射HTML實體在實體中定義 - *。properties; 好吧,因爲有幾個實體的名稱代表相同的 Unicode值
\u02192
在您的情況下,如果我沒有弄錯,映射是與第一個 匹配完成的。
謝謝!這是有效的,它有一個簡單的函數來封裝這個複雜的命令序列來生成合理的HTML。爲什麼不能doc.html()做到這一點? – fodon
它類似於此:http://stackoverflow.com/questions/19656463/keep-xml-entities-in-output-jsoup –
我創建了一個[GitHub上的問題(https://github.com/JHY/jsoup /問題/ 660)。 –